mirror of
https://github.com/internetee/registry.git
synced 2025-06-05 04:07:33 +02:00
151 lines
3.4 KiB
Ruby
151 lines
3.4 KiB
Ruby
require 'test_helper'
|
|
|
|
class AdminUserTest < ActiveSupport::TestCase
|
|
def test_valid_user_fixture_is_valid
|
|
assert valid_user.valid?, proc { valid_user.errors.full_messages }
|
|
end
|
|
|
|
def test_invalid_without_username
|
|
user = valid_user
|
|
user.username = ''
|
|
assert user.invalid?
|
|
end
|
|
|
|
def test_invalid_without_password_and_password_confirmation_when_creating
|
|
user = valid_non_persisted_user
|
|
|
|
user.password = ''
|
|
user.password_confirmation = ''
|
|
assert user.invalid?
|
|
|
|
user.password = valid_password
|
|
user.password_confirmation = user.password
|
|
assert user.valid?
|
|
end
|
|
|
|
def test_validates_password_format
|
|
user = valid_non_persisted_user
|
|
|
|
user.password = 'a' * (Devise.password_length.min.pred)
|
|
user.password_confirmation = user.password
|
|
assert user.invalid?
|
|
|
|
user.password = 'a' * (Devise.password_length.max.next)
|
|
user.password_confirmation = user.password
|
|
assert user.invalid?
|
|
|
|
user.password = 'a' * Devise.password_length.min
|
|
user.password_confirmation = user.password
|
|
assert user.valid?
|
|
|
|
user.password = 'a' * Devise.password_length.max
|
|
user.password_confirmation = user.password
|
|
assert user.valid?
|
|
end
|
|
|
|
def test_requires_password_confirmation
|
|
user = valid_non_persisted_user
|
|
user.password = valid_password
|
|
|
|
user.password_confirmation = ''
|
|
assert user.invalid?
|
|
|
|
user.password_confirmation = 'another'
|
|
assert user.invalid?
|
|
|
|
user.password_confirmation = user.password
|
|
assert user.valid?, proc { user.errors.full_messages }
|
|
end
|
|
|
|
def test_invalid_without_email
|
|
user = valid_user
|
|
user.email = ''
|
|
assert user.invalid?
|
|
end
|
|
|
|
def test_validates_email_format
|
|
user = valid_user
|
|
|
|
user.email = 'invalid'
|
|
assert user.invalid?
|
|
|
|
user.email = 'valid@registry.test'
|
|
assert user.valid?
|
|
end
|
|
|
|
def test_invalid_when_email_is_already_taken
|
|
another_user = valid_user
|
|
user = valid_non_persisted_user
|
|
|
|
user.email = another_user.email
|
|
assert user.invalid?
|
|
|
|
user.email = 'new-user@registry.test'
|
|
assert user.valid?, proc { user.errors.full_messages }
|
|
end
|
|
|
|
def test_invalid_without_country_code
|
|
user = valid_user
|
|
user.country_code = ''
|
|
assert user.invalid?
|
|
end
|
|
|
|
def test_invalid_without_roles
|
|
user = valid_user
|
|
user.roles = []
|
|
assert user.invalid?
|
|
end
|
|
|
|
def test_valid_without_identity_code
|
|
user = valid_user
|
|
user.identity_code = ''
|
|
assert user.valid?
|
|
end
|
|
|
|
def test_invalid_without_identity_code_when_country_code_is_estonia
|
|
user = valid_user
|
|
user.country_code = 'EE'
|
|
|
|
user.identity_code = ''
|
|
|
|
assert user.invalid?
|
|
end
|
|
|
|
# https://en.wikipedia.org/wiki/National_identification_number#Estonia
|
|
def test_validates_identity_code_format_when_country_code_is_estonia
|
|
user = valid_user
|
|
user.country_code = 'EE'
|
|
|
|
user.identity_code = '47101010030'
|
|
assert user.invalid?
|
|
|
|
user.identity_code = '47101010033'
|
|
assert user.valid?
|
|
end
|
|
|
|
def test_min_password_length
|
|
assert_equal AdminUser.min_password_length, 8
|
|
end
|
|
|
|
def test_country_instance
|
|
user = valid_user
|
|
assert user.country.present?
|
|
end
|
|
|
|
private
|
|
|
|
def valid_user
|
|
users(:admin)
|
|
end
|
|
|
|
def valid_non_persisted_user
|
|
user = valid_user.dup
|
|
user.password = user.password_confirmation = valid_password
|
|
user.email = 'another@registry.test'
|
|
user
|
|
end
|
|
|
|
def valid_password
|
|
'a' * Devise.password_length.min
|
|
end
|
|
end
|