diff --git a/app/models/concerns/domain/transferable.rb b/app/models/concerns/domain/transferable.rb index 4d6c5fb7a..e36c7be81 100644 --- a/app/models/concerns/domain/transferable.rb +++ b/app/models/concerns/domain/transferable.rb @@ -2,7 +2,7 @@ module Concerns::Domain::Transferable extend ActiveSupport::Concern included do - after_initialize :generate_transfer_code, if: :new_record? + after_initialize :generate_transfer_code, if: 'new_record? && transfer_code.blank?' end def transfer(new_registrar) diff --git a/test/models/domain_transfer_test.rb b/test/models/domain_transfer_test.rb index b49be5aeb..f930df586 100644 --- a/test/models/domain_transfer_test.rb +++ b/test/models/domain_transfer_test.rb @@ -5,18 +5,20 @@ class DomainTest < ActiveSupport::TestCase @domain = domains(:shop) end - def test_rejects_absent_transfer_code + def test_invalid_without_transfer_code @domain.transfer_code = nil @domain.validate assert @domain.invalid? end - def test_generates_random_transfer_code_if_domain_is_new + def test_generates_default_transfer_code + domain = Domain.new + refute_empty domain.transfer_code + end + + def test_generated_transfer_code_is_random domain = Domain.new another_domain = Domain.new - - refute_empty domain.transfer_code - refute_empty another_domain.transfer_code refute_equal domain.transfer_code, another_domain.transfer_code end @@ -27,6 +29,11 @@ class DomainTest < ActiveSupport::TestCase assert_equal original_transfer_code, @domain.transfer_code end + def test_overrides_default_transfer_code + domain = Domain.new(transfer_code: '1bad4f') + assert_equal '1bad4f', domain.transfer_code + end + def test_changes_registrar old_transfer_code = @domain.transfer_code new_registrar = registrars(:goodnames)