From b1488169492827fc0180942b3ec71e66023b8280 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 3 Nov 2020 14:22:12 +0500 Subject: [PATCH] Fix ForceDelete possible statuses doubling --- app/models/concerns/domain/force_delete.rb | 6 +++--- test/models/domain/force_delete_test.rb | 13 +++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) 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 0969504a4..4678ed99a 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,