From 20d5ab9ebf1fe4fca67531e02fe46e82444af04c Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 4 Nov 2020 14:24:09 +0500 Subject: [PATCH] Fix statuses processing for ForceDelete --- app/models/concerns/domain/force_delete.rb | 4 +-- test/models/domain/force_delete_test.rb | 33 ++++++++++++++++------ 2 files changed, 27 insertions(+), 10 deletions(-) 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