From 04de5da1935a0037be767b28a2a1fab7f44ce739 Mon Sep 17 00:00:00 2001 From: dinsmol Date: Thu, 3 Feb 2022 00:33:38 +0300 Subject: [PATCH 1/2] Add condition for start force delete --- app/interactions/domains/force_delete_email/base.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/interactions/domains/force_delete_email/base.rb b/app/interactions/domains/force_delete_email/base.rb index f22244045..0c3ceb579 100644 --- a/app/interactions/domains/force_delete_email/base.rb +++ b/app/interactions/domains/force_delete_email/base.rb @@ -11,6 +11,8 @@ module Domains domains = domain_contacts.map(&:domain).flatten + Domain.where(registrant_id: registrant_ids) + return if expired_or_hold_domains_exists?(domains) + domains.each do |domain| next if domain.expired? @@ -20,6 +22,12 @@ module Domains private + def expired_or_hold_domains_exists?(domains) + domains.any? do |domain| + domain.statuses.include?(DomainStatus::SERVER_HOLD) && email.include?(domain.name) + end + end + def before_execute_force_delete(domain) if domain.force_delete_scheduled? && !domain.status_notes[DomainStatus::FORCE_DELETE].nil? added_additional_email_into_notes(domain) From f6df99237f3da1407f7fbe0c15d0a98669f1e139 Mon Sep 17 00:00:00 2001 From: Thiago Youssef Date: Tue, 8 Mar 2022 12:33:50 +0200 Subject: [PATCH 2/2] Add tests for force delete email from hold domains --- .../force_delete_email/base_test.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 test/interactions/force_delete_email/base_test.rb diff --git a/test/interactions/force_delete_email/base_test.rb b/test/interactions/force_delete_email/base_test.rb new file mode 100644 index 000000000..c3f688678 --- /dev/null +++ b/test/interactions/force_delete_email/base_test.rb @@ -0,0 +1,18 @@ +require 'test_helper' + +class BaseTest < ActiveSupport::TestCase + def test_hold_domains_force_delete_email + domain = domains(:shop) + domain.update!(statuses: [DomainStatus::SERVER_HOLD]) + domain.update!(expire_time: Time.zone.now + 1.year) + + registrant = domain.registrant + registrant.update!(email: "#{registrant.email.split('@').first}@#{domain.name}") + + Domains::ForceDeleteEmail::Base.run(email: registrant.email) + + domain.reload + + assert_not domain.force_delete_scheduled? + end +end