diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 9b75d1e92..7a1ace6a7 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -128,9 +128,9 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength end def add_force_delete_statuses - statuses << DomainStatus::FORCE_DELETE - statuses << DomainStatus::SERVER_RENEW_PROHIBITED - statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED + self.statuses |= [DomainStatus::FORCE_DELETE, + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED] end def remove_force_delete_statuses diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 9743989ac..8fcbfeb2b 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -137,6 +137,19 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase assert_not @domain.force_delete_scheduled? end + def test_force_delete_does_not_double_statuses + statuses = [ + DomainStatus::FORCE_DELETE, + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED, + ] + @domain.statuses = @domain.statuses + statuses + @domain.save! + @domain.reload + @domain.schedule_force_delete(type: :fast_track) + 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,