diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 7a1ace6a7..7f3cb3922 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -80,8 +80,8 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength end def cancel_force_delete - restore_statuses_before_force_delete remove_force_delete_statuses + restore_statuses_before_force_delete clear_force_delete_data self.force_delete_date = nil self.force_delete_start = nil @@ -119,7 +119,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength end def preserve_current_statuses_for_force_delete - self.statuses_before_force_delete = statuses.clone + update(statuses_before_force_delete: statuses) end def restore_statuses_before_force_delete diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 8fcbfeb2b..f0723c326 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -150,19 +150,36 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase assert_equal @domain.statuses.size, statuses.size end - def test_cancelling_force_delete_removes_statuses_that_were_set_on_force_delete - statuses = [ - DomainStatus::FORCE_DELETE, - DomainStatus::SERVER_RENEW_PROHIBITED, - DomainStatus::SERVER_TRANSFER_PROHIBITED, - ] - @domain.statuses = @domain.statuses + statuses + def test_cancelling_force_delete_removes_force_delete_status @domain.schedule_force_delete(type: :fast_track) + assert @domain.statuses.include?(DomainStatus::FORCE_DELETE) + assert @domain.statuses.include?(DomainStatus::SERVER_RENEW_PROHIBITED) + assert @domain.statuses.include?(DomainStatus::SERVER_TRANSFER_PROHIBITED) + @domain.cancel_force_delete @domain.reload - assert_empty @domain.statuses & statuses + assert_not @domain.statuses.include?(DomainStatus::FORCE_DELETE) + assert_not @domain.statuses.include?(DomainStatus::SERVER_RENEW_PROHIBITED) + assert_not @domain.statuses.include?(DomainStatus::SERVER_TRANSFER_PROHIBITED) + end + + def test_cancelling_force_delete_keeps_previous_statuses + statuses = [ + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED, + ] + + @domain.statuses = statuses + @domain.save! + @domain.reload + + @domain.schedule_force_delete(type: :fast_track) + @domain.cancel_force_delete + @domain.reload + + assert_equal @domain.statuses, statuses end def test_hard_force_delete_should_have_outzone_and_purge_date_with_time