diff --git a/app/models/domain.rb b/app/models/domain.rb index 679669728..391c9c030 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -489,7 +489,7 @@ class Domain < ApplicationRecord end def pending_update? - statuses.include?(DomainStatus::PENDING_UPDATE) && !statuses.include?(DomainStatus::FORCE_DELETE) + statuses.include?(DomainStatus::PENDING_UPDATE) end # depricated not used, not valid diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index e3818c484..ad91ccfec 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -242,4 +242,14 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase assert_not_includes(@domain.statuses, asserted_status) end + + def test_force_delete_does_not_affect_pending_update_check + @domain.schedule_force_delete(type: :soft) + @domain.reload + + @domain.statuses << DomainStatus::PENDING_UPDATE + + assert @domain.force_delete_scheduled? + assert @domain.pending_update? + end end diff --git a/test/models/domain_cron_test.rb b/test/models/domain_cron_test.rb index 5b3b0120e..3bf36b9e2 100644 --- a/test/models/domain_cron_test.rb +++ b/test/models/domain_cron_test.rb @@ -52,4 +52,26 @@ class DomainCronTest < ActiveSupport::TestCase assert_emails 0 end + + def test_cleans_expired_pendings_when_force_delete_active + Setting.expire_pending_confirmation = 0 + + # Set force delete + @domain.schedule_force_delete(type: :soft) + @domain.reload + + @domain.statuses << DomainStatus::PENDING_UPDATE + # Set domain registrant change that's expired + @domain.update!(registrant_verification_asked_at: Time.zone.now, + registrant_verification_token: 'test', + statuses: @domain.statuses) + + assert @domain.pending_update? + @domain.reload + + DomainCron.clean_expired_pendings + @domain.reload + + assert_not @domain.pending_update? + end end