internetee-registry/test/models/contact/transfer_test.rb
2018-04-04 01:42:59 +03:00

82 lines
2.1 KiB
Ruby

require 'test_helper'
class ContactTransferTest < ActiveSupport::TestCase
setup do
@contact = contacts(:john)
@new_registrar = registrars(:goodnames)
end
def test_invalid_without_auth_info
@contact.auth_info = nil
assert @contact.invalid?
end
def test_default_auth_info
contact = Contact.new
refute_empty contact.auth_info
end
def test_generated_auth_info_is_random
contact = Contact.new
another_contact = Contact.new
refute_equal contact.auth_info, another_contact.auth_info
end
def test_does_not_regenerate_auth_info_if_contact_is_persisted
original_auth_info = @contact.auth_info
@contact.save!
@contact.reload
assert_equal original_auth_info, @contact.auth_info
end
def test_overrides_default_auth_info
contact = Contact.new(auth_info: '1bad4f')
assert_equal '1bad4f', contact.auth_info
end
def test_keeps_original_contact_untouched
original_hash = @contact.attributes
@contact.transfer(@new_registrar)
@contact.reload
assert_equal original_hash, @contact.attributes
end
def test_creates_new_contact
assert_difference -> { @new_registrar.contacts.count } do
@contact.transfer(@new_registrar)
end
end
def test_reuses_identical_contact
identical = contacts(:identical_to_william)
assert_equal identical, contacts(:william).transfer(@new_registrar)
end
def test_bypasses_validation
@contact = contacts(:invalid)
assert_difference 'Contact.count' do
@contact.transfer(@new_registrar)
end
end
def test_assigns_new_registrar
new_contact = @contact.transfer(@new_registrar)
assert_equal @new_registrar, new_contact.registrar
end
def test_links_to_original_contact
new_contact = @contact.transfer(@new_registrar)
assert_equal @contact, new_contact.original
end
def test_regenerates_code
new_contact = @contact.transfer(@new_registrar)
refute_equal @contact.code, new_contact.code
end
def test_regenerates_auth_info
new_contact = @contact.transfer(@new_registrar)
refute_equal @contact.auth_info, new_contact.auth_info
end
end