diff --git a/app/models/concerns/domain/registry_lockable.rb b/app/models/concerns/domain/registry_lockable.rb index 98bef7931..1ea903bdc 100644 --- a/app/models/concerns/domain/registry_lockable.rb +++ b/app/models/concerns/domain/registry_lockable.rb @@ -41,6 +41,7 @@ module Domain::RegistryLockable delete_domain_statuses_which_not_declared_before domain_status end self.locked_by_registrant_at = nil + clear_locked_domain_statuses_history alert_registrar_lock_changes!(lock: false) save! @@ -68,4 +69,8 @@ module Domain::RegistryLockable def delete_domain_statuses_which_not_declared_before(domain_status) statuses.delete(domain_status) unless locked_domain_statuses_history.include? domain_status end + + def clear_locked_domain_statuses_history + self.locked_domain_statuses_history = nil + end end diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 837ad3adc..ae8a713be 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -12,6 +12,28 @@ class ForceDeleteTest < ActionMailer::TestCase Truemail.configure.default_validation_type = @old_validation_type end + def test_restore_domain_statuses_after_soft_force_delete + @domain.update(statuses: [DomainStatus::SERVER_RENEW_PROHIBITED]) + @domain.schedule_force_delete(type: :soft) + + assert @domain.force_delete_scheduled? + assert @domain.force_delete_domain_statuses_history.include? DomainStatus::SERVER_RENEW_PROHIBITED + + @domain.cancel_force_delete + assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED + end + + def test_clear_force_delete_domain_statuses_history + @domain.update(statuses: [DomainStatus::SERVER_RENEW_PROHIBITED]) + @domain.schedule_force_delete(type: :soft) + + assert @domain.force_delete_scheduled? + assert @domain.force_delete_domain_statuses_history.include? DomainStatus::SERVER_RENEW_PROHIBITED + @domain.cancel_force_delete + + assert_nil @domain.force_delete_domain_statuses_history + end + def test_schedules_force_delete_fast_track assert_not @domain.force_delete_scheduled? travel_to Time.zone.parse('2010-07-05') diff --git a/test/models/domain/registry_lockable_test.rb b/test/models/domain/registry_lockable_test.rb index ea812cf68..3b61e0436 100644 --- a/test/models/domain/registry_lockable_test.rb +++ b/test/models/domain/registry_lockable_test.rb @@ -38,11 +38,23 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase @domain.apply_registry_lock assert @domain.locked_by_registrant? assert_equal @domain.statuses.sort, Domain::RegistryLockable::LOCK_STATUSES.sort + assert @domain.locked_domain_statuses_history.include? DomainStatus::SERVER_UPDATE_PROHIBITED @domain.remove_registry_lock assert @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED end + def test_clear_locked_domain_statuses_history + @domain.update(statuses: [DomainStatus::SERVER_UPDATE_PROHIBITED]) + @domain.apply_registry_lock + + assert @domain.locked_by_registrant? + assert @domain.locked_domain_statuses_history.include? DomainStatus::SERVER_UPDATE_PROHIBITED + @domain.remove_registry_lock + + assert_nil @domain.locked_domain_statuses_history + end + def test_registry_lock_on_lockable_domain refute(@domain.locked_by_registrant?) @domain.apply_registry_lock