From 64be27fe53a2c152785f06fa6de61cf0360e35c3 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 22 Nov 2016 23:21:01 +0200 Subject: [PATCH] Log DomainDelete#confirm, DomainDelete#forced, DomainExpire#expired, RegistrantChange#confirm emails sending #186 --- app/jobs/domain_delete_confirm_email_job.rb | 12 ++++++ app/jobs/domain_delete_forced_email_job.rb | 13 ++++++ app/jobs/domain_expire_email_job.rb | 7 +++- .../registrant_change_confirm_email_job.rb | 12 ++++++ .../domain_delete_confirm_email_job_spec.rb | 39 +++++++++++++++++ .../domain_delete_forced_email_job_spec.rb | 39 +++++++++++++++++ spec/jobs/domain_expire_email_job_spec.rb | 7 ++-- ...egistrant_change_confirm_email_job_spec.rb | 42 +++++++++++++++++++ 8 files changed, 167 insertions(+), 4 deletions(-) create mode 100644 spec/jobs/domain_delete_confirm_email_job_spec.rb create mode 100644 spec/jobs/domain_delete_forced_email_job_spec.rb create mode 100644 spec/jobs/registrant_change_confirm_email_job_spec.rb diff --git a/app/jobs/domain_delete_confirm_email_job.rb b/app/jobs/domain_delete_confirm_email_job.rb index d3f06c189..5c447a24f 100644 --- a/app/jobs/domain_delete_confirm_email_job.rb +++ b/app/jobs/domain_delete_confirm_email_job.rb @@ -2,8 +2,20 @@ class DomainDeleteConfirmEmailJob < Que::Job def run(domain_id) domain = Domain.find(domain_id) + log(domain) DomainDeleteMailer.confirm(domain: domain, registrar: domain.registrar, registrant: domain.registrant).deliver_now end + + private + + def log(domain) + message = "Send DomainDeleteMailer#confirm email for domain ##{domain.id} to #{domain.registrant_email}" + logger.info(message) + end + + def logger + Rails.logger + end end diff --git a/app/jobs/domain_delete_forced_email_job.rb b/app/jobs/domain_delete_forced_email_job.rb index d28836b90..ade3a43da 100644 --- a/app/jobs/domain_delete_forced_email_job.rb +++ b/app/jobs/domain_delete_forced_email_job.rb @@ -2,8 +2,21 @@ class DomainDeleteForcedEmailJob < Que::Job def run(domain_id) domain = Domain.find(domain_id) + log(domain) DomainDeleteMailer.forced(domain: domain, registrar: domain.registrar, registrant: domain.registrant).deliver_now end + + private + + def log(domain) + message = "Send DomainDeleteMailer#forced email for domain ##{domain.id} to #{domain.primary_contact_emails + .join(', ')}" + logger.info(message) + end + + def logger + Rails.logger + end end diff --git a/app/jobs/domain_expire_email_job.rb b/app/jobs/domain_expire_email_job.rb index 252482fb6..d42d343ca 100644 --- a/app/jobs/domain_expire_email_job.rb +++ b/app/jobs/domain_expire_email_job.rb @@ -11,6 +11,11 @@ class DomainExpireEmailJob < Que::Job private def log(domain) - Rails.logger.info("Send DomainExpireMailer#expired email for domain ##{domain.id} to #{domain.primary_contact_emails.join(', ')}") + message = "Send DomainExpireMailer#expired email for domain ##{domain.id} to #{domain.primary_contact_emails.join(', ')}" + logger.info(message) + end + + def logger + Rails.logger end end diff --git a/app/jobs/registrant_change_confirm_email_job.rb b/app/jobs/registrant_change_confirm_email_job.rb index 5f93a066b..4c91c48a4 100644 --- a/app/jobs/registrant_change_confirm_email_job.rb +++ b/app/jobs/registrant_change_confirm_email_job.rb @@ -3,9 +3,21 @@ class RegistrantChangeConfirmEmailJob < Que::Job domain = Domain.find(domain_id) new_registrant = Registrant.find(new_registrant_id) + log(domain) RegistrantChangeMailer.confirm(domain: domain, registrar: domain.registrar, current_registrant: domain.registrant, new_registrant: new_registrant).deliver_now end + + private + + def log(domain) + message = "Send RegistrantChangeMailer#confirm email for domain ##{domain.id} to #{domain.registrant_email}" + logger.info(message) + end + + def logger + Rails.logger + end end diff --git a/spec/jobs/domain_delete_confirm_email_job_spec.rb b/spec/jobs/domain_delete_confirm_email_job_spec.rb new file mode 100644 index 000000000..8cb895b3f --- /dev/null +++ b/spec/jobs/domain_delete_confirm_email_job_spec.rb @@ -0,0 +1,39 @@ +require 'rails_helper' + +RSpec.describe DomainDeleteConfirmEmailJob do + describe '#run' do + let(:domain) { instance_double(Domain) } + let(:message) { instance_double(ActionMailer::MessageDelivery) } + + before :example do + expect(Domain).to receive(:find).and_return(domain) + allow(domain).to receive_messages( + id: 1, + registrant_email: 'registrant@test.com', + registrar: 'registrar', + registrant: 'registrant') + end + + after :example do + domain_id = 1 + described_class.enqueue(domain_id) + end + + it 'creates log record' do + log_message = 'Send DomainDeleteMailer#confirm email for domain #1 to registrant@test.com' + + allow(DomainDeleteMailer).to receive(:confirm).and_return(message) + allow(message).to receive(:deliver_now) + + expect(Rails.logger).to receive(:info).with(log_message) + end + + it 'sends email' do + expect(DomainDeleteMailer).to receive(:confirm).with(domain: domain, + registrar: 'registrar', + registrant: 'registrant') + .and_return(message) + expect(message).to receive(:deliver_now) + end + end +end diff --git a/spec/jobs/domain_delete_forced_email_job_spec.rb b/spec/jobs/domain_delete_forced_email_job_spec.rb new file mode 100644 index 000000000..452d0a659 --- /dev/null +++ b/spec/jobs/domain_delete_forced_email_job_spec.rb @@ -0,0 +1,39 @@ +require 'rails_helper' + +RSpec.describe DomainDeleteForcedEmailJob do + describe '#run' do + let(:domain) { instance_double(Domain) } + let(:message) { instance_double(ActionMailer::MessageDelivery) } + + before :example do + expect(Domain).to receive(:find).and_return(domain) + allow(domain).to receive_messages( + id: 1, + registrar: 'registrar', + registrant: 'registrant', + primary_contact_emails: %w(test@test.com test@test.com)) + end + + after :example do + domain_id = 1 + described_class.enqueue(domain_id) + end + + it 'creates log record' do + log_message = 'Send DomainDeleteMailer#forced email for domain #1 to test@test.com, test@test.com' + + allow(DomainDeleteMailer).to receive(:forced).and_return(message) + allow(message).to receive(:deliver_now) + + expect(Rails.logger).to receive(:info).with(log_message) + end + + it 'sends email' do + expect(DomainDeleteMailer).to receive(:forced).with(domain: domain, + registrar: 'registrar', + registrant: 'registrant') + .and_return(message) + expect(message).to receive(:deliver_now) + end + end +end diff --git a/spec/jobs/domain_expire_email_job_spec.rb b/spec/jobs/domain_expire_email_job_spec.rb index 86bff4e5e..fb7ef9822 100644 --- a/spec/jobs/domain_expire_email_job_spec.rb +++ b/spec/jobs/domain_expire_email_job_spec.rb @@ -9,7 +9,8 @@ RSpec.describe DomainExpireEmailJob do end after :example do - described_class.enqueue(domain_id: 1) + domain_id = 1 + described_class.enqueue(domain_id) end context 'when domain is expired' do @@ -32,7 +33,7 @@ RSpec.describe DomainExpireEmailJob do expect(Rails.logger).to receive(:info).with(log_message) end - it 'sends email notification' do + it 'sends email' do expect(DomainExpireMailer).to receive(:expired).with(domain: domain, registrar: 'registrar') .and_return(message) expect(message).to receive(:deliver_now) @@ -48,7 +49,7 @@ RSpec.describe DomainExpireEmailJob do expect(Rails.logger).to_not receive(:info) end - it 'does not send email notification' do + it 'does not send email' do expect(DomainExpireMailer).to_not receive(:expired) end end diff --git a/spec/jobs/registrant_change_confirm_email_job_spec.rb b/spec/jobs/registrant_change_confirm_email_job_spec.rb new file mode 100644 index 000000000..efa1b1e30 --- /dev/null +++ b/spec/jobs/registrant_change_confirm_email_job_spec.rb @@ -0,0 +1,42 @@ +require 'rails_helper' + +RSpec.describe RegistrantChangeConfirmEmailJob do + describe '#run' do + let(:domain) { instance_double(Domain) } + let(:message) { instance_double(ActionMailer::MessageDelivery) } + + before :example do + expect(Domain).to receive(:find).and_return(domain) + expect(Registrant).to receive(:find).and_return('new registrant') + allow(domain).to receive_messages( + id: 1, + registrant_email: 'registrant@test.com', + registrar: 'registrar', + registrant: 'registrant') + end + + after :example do + domain_id = 1 + new_registrant_id = 1 + described_class.enqueue(domain_id, new_registrant_id) + end + + it 'creates log record' do + log_message = 'Send RegistrantChangeMailer#confirm email for domain #1 to registrant@test.com' + + allow(RegistrantChangeMailer).to receive(:confirm).and_return(message) + allow(message).to receive(:deliver_now) + + expect(Rails.logger).to receive(:info).with(log_message) + end + + it 'sends email' do + expect(RegistrantChangeMailer).to receive(:confirm).with(domain: domain, + registrar: 'registrar', + current_registrant: 'registrant', + new_registrant: 'new registrant') + .and_return(message) + expect(message).to receive(:deliver_now) + end + end +end