Fix statuses processing for ForceDelete

This commit is contained in:
Alex Sherman 2020-11-04 14:24:09 +05:00
parent 433445f1ac
commit 20d5ab9ebf
2 changed files with 27 additions and 10 deletions

View file

@ -80,8 +80,8 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
end end
def cancel_force_delete def cancel_force_delete
restore_statuses_before_force_delete
remove_force_delete_statuses remove_force_delete_statuses
restore_statuses_before_force_delete
clear_force_delete_data clear_force_delete_data
self.force_delete_date = nil self.force_delete_date = nil
self.force_delete_start = nil self.force_delete_start = nil
@ -119,7 +119,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
end end
def preserve_current_statuses_for_force_delete def preserve_current_statuses_for_force_delete
self.statuses_before_force_delete = statuses.clone update(statuses_before_force_delete: statuses)
end end
def restore_statuses_before_force_delete def restore_statuses_before_force_delete

View file

@ -150,19 +150,36 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase
assert_equal @domain.statuses.size, statuses.size assert_equal @domain.statuses.size, statuses.size
end end
def test_cancelling_force_delete_removes_statuses_that_were_set_on_force_delete def test_cancelling_force_delete_removes_force_delete_status
statuses = [
DomainStatus::FORCE_DELETE,
DomainStatus::SERVER_RENEW_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED,
]
@domain.statuses = @domain.statuses + statuses
@domain.schedule_force_delete(type: :fast_track) @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.cancel_force_delete
@domain.reload @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 end
def test_hard_force_delete_should_have_outzone_and_purge_date_with_time def test_hard_force_delete_should_have_outzone_and_purge_date_with_time