Sha256: 38ad02685d64b6c9325374e557918c4316cf87219c1cc07a95f7e5318e881710

Contents?: true

Size: 1.88 KB

Versions: 7

Compression:

Stored size: 1.88 KB

Contents

require 'test_helper'

class HasPublicIdTest < ActiveSupport::TestCase
  test "Mixin" do
    assert ActiveRecord::Base.respond_to?(:has_public_id), "should respond to the method we define"
  end

end

class HasPublicId::UtilTest < ActiveSupport::TestCase
  test "char_set.length" do
    assert_equal 62, HasPublicId::Util.char_set.length
  end

  test "generate_random_suffix" do
    keys = {}
    1000.times do |i|
      # 62 ^ 10 possibiliities
      suffix = HasPublicId::Util.generate_random_suffix(10)
      assert_nil keys[suffix], "#{suffix} is a duplicate!"
      keys[suffix] = i
    end
  end
  test "generate_random_suffix(length)" do
    assert_equal 10, HasPublicId::Util.generate_random_suffix(10).length
    assert_equal 15, HasPublicId::Util.generate_random_suffix(15).length
  end
  test "new_public_id(with_prefix)" do
    key = HasPublicId::Util.new_public_id(User, length: 10, prefix: 'user')
    assert_equal('user-', key.first(5), "prefix option")
  end
  test "new_public_id(with_false_prefix)" do
    key = HasPublicId::Util.new_public_id(User, length: 10, prefix: false)
    assert key.match(/^[a-zA-Z0-9]{10}$/), "#{key} doesn't match 10 random alphanumerics"
    assert_equal(10, key.length, "prefix: false")
  end
  test "new_public_id(with_nil_prefix)" do
    key = HasPublicId::Util.new_public_id(User, length: 10, prefix: nil)
    assert key.match(/^[a-zA-Z0-9]{10}$/), "#{key} doesn't match 10 random alphanumerics"
    assert_equal(10, key.length, "prefix: nil")
  end
  test "new_public_id(with_blank_prefix)" do
    key = HasPublicId::Util.new_public_id(User, length: 10, prefix: '')
    assert key.match(/^[a-zA-Z0-9]{10}$/), "#{key} doesn't match 10 random alphanumerics"
    assert_equal(10, key.length, "prefix: ''")
  end
  test "new_public_id(with_join_with)" do
    key = HasPublicId::Util.new_public_id(User, length: 10, join_with: '_')
    assert_equal('use_', key.first(4))
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
has_public_id-1.2.1 test/has_public_id_test.rb
has_public_id-1.2.0 test/has_public_id_test.rb
has_public_id-1.1.9 test/has_public_id_test.rb
has_public_id-1.1.8 test/has_public_id_test.rb
has_public_id-1.1.7 test/has_public_id_test.rb
has_public_id-1.1.6 test/has_public_id_test.rb
has_public_id-1.1.5 test/has_public_id_test.rb