From 8cab4f6df452b11cdc3d44d88e136d0b6cb5f2c0 Mon Sep 17 00:00:00 2001 From: dinsmol Date: Mon, 17 Jan 2022 17:16:05 +0300 Subject: [PATCH] Fix tests and errors --- .../domains/force_delete_email/base.rb | 9 +++++++++ app/models/validation_event.rb | 10 ++++++++++ test/models/domain/force_delete_test.rb | 18 +++++++++--------- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/app/interactions/domains/force_delete_email/base.rb b/app/interactions/domains/force_delete_email/base.rb index f22244045..8b3ec9965 100644 --- a/app/interactions/domains/force_delete_email/base.rb +++ b/app/interactions/domains/force_delete_email/base.rb @@ -23,11 +23,20 @@ module Domains def before_execute_force_delete(domain) if domain.force_delete_scheduled? && !domain.status_notes[DomainStatus::FORCE_DELETE].nil? added_additional_email_into_notes(domain) + notify_registrar(domain) else process_force_delete(domain) end end + def notify_registrar(domain) + domain.registrar.notifications.create!(text: I18n.t('force_delete_auto_email', + domain_name: domain.name, + outzone_date: domain.outzone_date, + purge_date: domain.purge_date, + email: domain.status_notes[DomainStatus::FORCE_DELETE])) + end + def process_force_delete(domain) domain.schedule_force_delete(type: :soft, notify_by_email: true, diff --git a/app/models/validation_event.rb b/app/models/validation_event.rb index 77facf4db..6af2daa2f 100644 --- a/app/models/validation_event.rb +++ b/app/models/validation_event.rb @@ -85,9 +85,19 @@ class ValidationEvent < ApplicationRecord domain.status_notes[DomainStatus::FORCE_DELETE].slice!(old_email) domain.status_notes[DomainStatus::FORCE_DELETE].lstrip! domain.save(validate: false) + + notify_registrar(domain) unless domain.status_notes[DomainStatus::FORCE_DELETE].empty? end end + def notify_registrar(domain) + domain.registrar.notifications.create!(text: I18n.t('force_delete_auto_email', + domain_name: domain.name, + outzone_date: domain.outzone_date, + purge_date: domain.purge_date, + email: domain.status_notes[DomainStatus::FORCE_DELETE])) + end + def lift_force_delete # domain_contacts = Contact.where(email: email).map(&:domain_contacts).flatten # registrant_ids = Registrant.where(email: email).pluck(:id) diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index fd3d226ef..7498f41d7 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -424,10 +424,8 @@ class ForceDeleteTest < ActionMailer::TestCase contact_first = domain.admin_contacts.first old_email = contact_first.email - contact_first.update( - email: email_1, - email_history: old_email - ) + contact_first.update_attribute(:email_history, old_email) + contact_first.update_attribute(:email, email_1) ValidationEvent::VALID_EVENTS_COUNT_THRESHOLD.times do contact_first.verify_email @@ -439,6 +437,7 @@ class ForceDeleteTest < ActionMailer::TestCase contact_second = domain.admin_contacts.last contact_second.update_attribute(:email, email_2) + travel_to Time.zone.parse('2010-07-05 0:00:03') ValidationEvent::VALID_EVENTS_COUNT_THRESHOLD.times do contact_second.verify_email end @@ -446,14 +445,15 @@ class ForceDeleteTest < ActionMailer::TestCase assert contact_second.email_verification_failed? domain.reload - contact_first.update( - email: old_email, - email_history: email_1 - ) + contact_first.update_attribute(:email_history, email_1) + contact_first.update_attribute(:email, 'correct_email@internet.ee') + travel_to Time.zone.parse('2010-07-05 0:00:06') contact_first.verify_email - domain.reload + + assert contact_first.need_to_lift_force_delete? + 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