diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index ec5c651be..bf67a33f2 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -23,6 +23,8 @@ module Concerns::Domain::ForceDelete end def cancel_force_delete + raise 'Domain must be discarded before cancelling force delete procedure' unless discarded? + statuses.delete(DomainStatus::FORCE_DELETE) statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED) statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED) diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 27b792fe7..328a45658 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -11,6 +11,7 @@ class DomainForceDeleteTest < ActiveSupport::TestCase travel_to Time.zone.parse('2010-07-05 00:00') @domain.schedule_force_delete + @domain.reload assert @domain.force_delete_scheduled? assert_equal Time.zone.parse('2010-08-04 03:00'), @domain.force_delete_at @@ -25,14 +26,25 @@ class DomainForceDeleteTest < ActiveSupport::TestCase assert @domain.force_delete_scheduled? end - def test_cancel_force_delete + def test_cancelling_force_delete_on_discarded_domain + @domain.discard + @domain.schedule_force_delete @domain.cancel_force_delete + @domain.reload assert_not @domain.force_delete_scheduled? assert_nil @domain.force_delete_at end + def test_cancelling_force_delete_requires_a_domain_to_be_discarded + @domain.schedule_force_delete + assert_raises StandardError do + @domain.cancel_force_delete + end + end + def test_cancelling_force_delete_bypasses_validation @domain = domains(:invalid) + @domain.discard @domain.schedule_force_delete @domain.cancel_force_delete assert_not @domain.force_delete_scheduled?