From 81c21db3924bf35d104b33518486ee6548b0c8ab Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 19 Mar 2021 18:19:28 +0500 Subject: [PATCH] Add FD if email belongs to registant --- .../domains/force_delete_email/base.rb | 6 +++++- test/models/domain/force_delete_test.rb | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/interactions/domains/force_delete_email/base.rb b/app/interactions/domains/force_delete_email/base.rb index aa204831a..7b7e56e5e 100644 --- a/app/interactions/domains/force_delete_email/base.rb +++ b/app/interactions/domains/force_delete_email/base.rb @@ -6,7 +6,11 @@ module Domains def execute domain_contacts = Contact.where(email: email).map(&:domain_contacts).flatten - domains = domain_contacts.map(&:domain).flatten + registrant_ids = Registrant.where(email: email).pluck(:id) + + domains = domain_contacts.map(&:domain).flatten + + Domain.where(registrant_id: registrant_ids) + domains.each do |domain| next if domain.force_delete_scheduled? diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index a0eb9c81f..68b0df87a 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -336,6 +336,21 @@ class ForceDeleteTest < ActionMailer::TestCase assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date end + def test_schedules_force_delete_after_registrant_bounce + @domain.update(valid_to: Time.zone.parse('2012-08-05')) + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') + + prepare_bounced_email_address(@domain.registrant.email) + + @domain.reload + + assert @domain.force_delete_scheduled? + assert_equal 'invalid_email', @domain.template_name + assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date + assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date + end + def test_schedules_force_delete_invalid_contact @domain.update(valid_to: Time.zone.parse('2012-08-05')) assert_not @domain.force_delete_scheduled?