From 968a59cd3d660aed676c12943e80113120bc3bab Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 23 Nov 2016 01:01:00 +0200 Subject: [PATCH] Log RegistrantChange#expired, RegistrantChange#notice emails sending #186 --- .../registrant_change_expired_email_job.rb | 12 ++++++ .../registrant_change_notice_email_job.rb | 13 +++++- ...egistrant_change_expired_email_job_spec.rb | 39 +++++++++++++++++ ...registrant_change_notice_email_job_spec.rb | 43 +++++++++++++++++++ 4 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 spec/jobs/registrant_change_expired_email_job_spec.rb create mode 100644 spec/jobs/registrant_change_notice_email_job_spec.rb diff --git a/app/jobs/registrant_change_expired_email_job.rb b/app/jobs/registrant_change_expired_email_job.rb index 73a90d8fe..8e7650501 100644 --- a/app/jobs/registrant_change_expired_email_job.rb +++ b/app/jobs/registrant_change_expired_email_job.rb @@ -1,8 +1,20 @@ class RegistrantChangeExpiredEmailJob < Que::Job def run(domain_id) domain = Domain.find(domain_id) + log(domain) RegistrantChangeMailer.expired(domain: domain, registrar: domain.registrar, registrant: domain.registrant).deliver_now end + + private + + def log(domain) + message = "Send RegistrantChangeMailer#expired email for domain ##{domain.id} to #{domain.new_registrant_email}" + logger.info(message) + end + + def logger + Rails.logger + end end diff --git a/app/jobs/registrant_change_notice_email_job.rb b/app/jobs/registrant_change_notice_email_job.rb index b9f3f992c..bb170dce1 100644 --- a/app/jobs/registrant_change_notice_email_job.rb +++ b/app/jobs/registrant_change_notice_email_job.rb @@ -2,10 +2,21 @@ class RegistrantChangeNoticeEmailJob < Que::Job def run(domain_id, new_registrant_id) domain = Domain.find(domain_id) new_registrant = Registrant.find(new_registrant_id) - + log(domain, new_registrant) RegistrantChangeMailer.notice(domain: domain, registrar: domain.registrar, current_registrant: domain.registrant, new_registrant: new_registrant).deliver_now end + + private + + def log(domain, new_registrant) + message = "Send RegistrantChangeMailer#notice email for domain ##{domain.id} to #{new_registrant.email}" + logger.info(message) + end + + def logger + Rails.logger + end end diff --git a/spec/jobs/registrant_change_expired_email_job_spec.rb b/spec/jobs/registrant_change_expired_email_job_spec.rb new file mode 100644 index 000000000..43d08f50d --- /dev/null +++ b/spec/jobs/registrant_change_expired_email_job_spec.rb @@ -0,0 +1,39 @@ +require 'rails_helper' + +RSpec.describe RegistrantChangeExpiredEmailJob do + describe '#run' do + let(:domain) { instance_double(Domain, + id: 1, + new_registrant_email: 'new-registrant@test.com', + registrar: 'registrar', + registrant: 'registrant') + } + let(:message) { instance_double(ActionMailer::MessageDelivery) } + + before :example do + expect(Domain).to receive(:find).and_return(domain) + end + + after :example do + domain_id = 1 + described_class.enqueue(domain_id) + end + + it 'creates log record' do + log_message = 'Send RegistrantChangeMailer#expired email for domain #1 to new-registrant@test.com' + + allow(RegistrantChangeMailer).to receive(:expired).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(:expired).with(domain: domain, + registrar: 'registrar', + registrant: 'registrant') + .and_return(message) + expect(message).to receive(:deliver_now) + end + end +end diff --git a/spec/jobs/registrant_change_notice_email_job_spec.rb b/spec/jobs/registrant_change_notice_email_job_spec.rb new file mode 100644 index 000000000..0d9e05a65 --- /dev/null +++ b/spec/jobs/registrant_change_notice_email_job_spec.rb @@ -0,0 +1,43 @@ +require 'rails_helper' + +RSpec.describe RegistrantChangeNoticeEmailJob do + describe '#run' do + let(:domain) { instance_double(Domain, + id: 1, + registrant_email: 'registrant@test.com', + registrar: 'registrar', + registrant: 'registrant') + } + let(:new_registrant) { instance_double(Registrant, email: 'new-registrant@test.com') } + 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) + 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#notice email for domain #1 to new-registrant@test.com' + + allow(RegistrantChangeMailer).to receive(:notice).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(:notice).with(domain: domain, + registrar: 'registrar', + current_registrant: 'registrant', + new_registrant: new_registrant) + .and_return(message) + expect(message).to receive(:deliver_now) + end + end +end