Browse Source

Update absorbing organisation email

pull/2078/head
Kat 2 years ago
parent
commit
bc127eb0c8
  1. 13
      app/mailers/merge_completion_mailer.rb
  2. 2
      app/services/merge/merge_organisations_service.rb
  3. 24
      spec/mailers/merge_completion_mailer_spec.rb
  4. 18
      spec/services/merge/merge_organisations_service_spec.rb

13
app/mailers/merge_completion_mailer.rb

@ -1,6 +1,6 @@
class MergeCompletionMailer < NotifyMailer
MERGE_COMPLETION_MERGING_ORGANISATION_TEMPLATE_ID = "b3b62e72-5ced-4515-8720-08bdc7bac792".freeze
MERGE_COMPLETION_ABSORBING_ORGANISATION_TEMPLATE_ID = "xxx".freeze
MERGE_COMPLETION_ABSORBING_ORGANISATION_TEMPLATE_ID = "7cdfefac-84c3-4054-8bd9-63103b3847b6".freeze
def send_merged_organisation_success_mail(email, merged_organisation_name, absorbing_organisation_name, merge_date)
send_email(
@ -15,15 +15,20 @@ class MergeCompletionMailer < NotifyMailer
)
end
def send_absorbing_organisation_success_mail(email, merged_organisation_name, absorbing_organisation_name, merge_date)
def send_absorbing_organisation_success_mail(email, merged_organisations, absorbing_organisation_name, merge_date)
organisation_count = merged_organisations.count.to_s + " organisation".pluralize(merged_organisations.count)
pluralised_organisation = merged_organisations.count > 1 ? "these organisations" : "this organisation"
merged_organisation_list = (merged_organisations.count > 1 ? "The organisations are " : "The organisation is ") + merged_organisations.to_sentence(last_word_connector: " and ")
send_email(
email,
MERGE_COMPLETION_ABSORBING_ORGANISATION_TEMPLATE_ID,
{
merged_organisation_name:,
organisation_count:,
merged_organisations: merged_organisation_list,
absorbing_organisation_name:,
merge_date: merge_date.to_formatted_s(:govuk_date),
email:,
pluralised_organisation:,
},
)
end

2
app/services/merge/merge_organisations_service.rb

@ -158,7 +158,7 @@ private
if merged_user.present?
MergeCompletionMailer.send_merged_organisation_success_mail(merged_user[:email], merged_organisation, @absorbing_organisation.name, @merge_date).deliver_later
else
MergeCompletionMailer.send_absorbing_organisation_success_mail(user.email, @merging_organisations.map(&:name).join(", "), @absorbing_organisation.name, @merge_date).deliver_later
MergeCompletionMailer.send_absorbing_organisation_success_mail(user.email, @merging_organisations.map(&:name), @absorbing_organisation.name, @merge_date).deliver_later
end
end
end

24
spec/mailers/merge_completion_mailer_spec.rb

@ -29,18 +29,34 @@ RSpec.describe MergeCompletionMailer do
describe "#send_absorbing_organisation_success_mail" do
let(:merge_date) { Time.zone.local(2023, 1, 1) }
it "sends a merge completion E-mail via notify" do
it "sends a merge completion E-mail via notify for a single merge" do
expect(notify_client).to receive(:send_email).with(hash_including({
template_id: MergeCompletionMailer::MERGE_COMPLETION_ABSORBING_ORGANISATION_TEMPLATE_ID,
personalisation: hash_including({
merged_organisation_name: "merged organisation",
organisation_count: "1 organisation",
merged_organisations: "The organisation is merged organisation",
absorbing_organisation_name: "absorbing organisation",
merge_date: "1 January 2023",
email: "user@example.com",
pluralised_organisation: "this organisation",
}),
}))
described_class.new.send_absorbing_organisation_success_mail("user@example.com", ["merged organisation"], "absorbing organisation", merge_date)
end
it "sends a merge completion E-mail via notify for a multiple org merge" do
expect(notify_client).to receive(:send_email).with(hash_including({
template_id: MergeCompletionMailer::MERGE_COMPLETION_ABSORBING_ORGANISATION_TEMPLATE_ID,
personalisation: hash_including({
organisation_count: "2 organisations",
merged_organisations: "The organisations are merged organisation and other organisation",
absorbing_organisation_name: "absorbing organisation",
merge_date: "1 January 2023",
pluralised_organisation: "these organisations",
}),
}))
described_class.new.send_absorbing_organisation_success_mail("user@example.com", "merged organisation", "absorbing organisation", merge_date)
described_class.new.send_absorbing_organisation_success_mail("user@example.com", ["merged organisation", "other organisation"], "absorbing organisation", merge_date)
end
end
end

18
spec/services/merge/merge_organisations_service_spec.rb

@ -849,11 +849,11 @@ RSpec.describe Merge::MergeOrganisationsService do
end
it "sends a merge completion E-mail to the original absorbing organisation users" do
expect(MergeCompletionMailer).to receive(:send_absorbing_organisation_success_mail).with(absorbing_organisation.data_protection_officers.first.email, "fake org", "absorbing org", Time.zone.today).once
expect(MergeCompletionMailer).to receive(:send_absorbing_organisation_success_mail).with(absorbing_organisation_user.email, "fake org", "absorbing org", Time.zone.today).once
expect(MergeCompletionMailer).to receive(:send_absorbing_organisation_success_mail).with(absorbing_organisation.data_protection_officers.first.email, ["fake org"], "absorbing org", Time.zone.today).once
expect(MergeCompletionMailer).to receive(:send_absorbing_organisation_success_mail).with(absorbing_organisation_user.email, ["fake org"], "absorbing org", Time.zone.today).once
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(merging_organisation_user.email, "fake org", "absorbing org", Time.zone.today)
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(merging_organisation.data_protection_officers.first.email, "fake org", "absorbing org", Time.zone.today)
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(merging_organisation_user.email, ["fake org"], "absorbing org", Time.zone.today)
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(merging_organisation.data_protection_officers.first.email, ["fake org"], "absorbing org", Time.zone.today)
merge_organisations_service.call
end
@ -976,14 +976,14 @@ RSpec.describe Merge::MergeOrganisationsService do
end
it "sends a merge completion E-mail to the original absorbing organisation users" do
expect(MergeCompletionMailer).to receive(:send_absorbing_organisation_success_mail).with(absorbing_organisation.data_protection_officers.first.email, "fake org, second org", "absorbing org", Time.zone.today).once
expect(MergeCompletionMailer).to receive(:send_absorbing_organisation_success_mail).with(absorbing_organisation_user.email, "fake org, second org", "absorbing org", Time.zone.today).once
expect(MergeCompletionMailer).to receive(:send_absorbing_organisation_success_mail).with(absorbing_organisation.data_protection_officers.first.email, ["fake org", "second org"], "absorbing org", Time.zone.today).once
expect(MergeCompletionMailer).to receive(:send_absorbing_organisation_success_mail).with(absorbing_organisation_user.email, ["fake org", "second org"], "absorbing org", Time.zone.today).once
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(merging_organisation_user.email, "fake org, second org", "absorbing org", Time.zone.today)
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(merging_organisation.data_protection_officers.first.email, "fake org, second org", "absorbing org", Time.zone.today)
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(merging_organisation_user.email, ["fake org", "second org"], "absorbing org", Time.zone.today)
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(merging_organisation.data_protection_officers.first.email, ["fake org", "second org"], "absorbing org", Time.zone.today)
merging_organisation_too.users.each do |user|
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(user.email, "second org", "absorbing org", Time.zone.today)
expect(MergeCompletionMailer).not_to receive(:send_absorbing_organisation_success_mail).with(user.email, ["fake org", "second org"], "absorbing org", Time.zone.today)
end
merge_organisations_service.call

Loading…
Cancel
Save