You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.5 KiB
83 lines
3.5 KiB
require "rails_helper" |
|
|
|
RSpec.describe CsvDownloadMailer do |
|
let(:notify_client) { instance_double(Notifications::Client) } |
|
let(:user) { FactoryBot.create(:user, email: "user@example.com") } |
|
|
|
before do |
|
allow(Notifications::Client).to receive(:new).and_return(notify_client) |
|
allow(notify_client).to receive(:send_email).and_return(true) |
|
end |
|
|
|
describe "#send_csv_download_mail" do |
|
it "sends a CSV download E-mail via notify" do |
|
link = :link |
|
duration = 20.minutes.to_i |
|
|
|
expect(notify_client).to receive(:send_email).with( |
|
email_address: user.email, |
|
template_id: described_class::CSV_DOWNLOAD_TEMPLATE_ID, |
|
personalisation: { |
|
name: user.name, |
|
link:, |
|
duration: "20 minutes", |
|
}, |
|
) |
|
|
|
described_class.new.send_csv_download_mail(user, link, duration) |
|
end |
|
end |
|
|
|
describe "#send_missing_lettings_addresses_csv_download_mail" do |
|
it "sends a CSV download E-mail via notify" do |
|
link = :link |
|
duration = 20.minutes.to_i |
|
|
|
expect(notify_client).to receive(:send_email).with( |
|
email_address: user.email, |
|
template_id: described_class::CSV_MISSING_LETTINGS_ADDRESSES_DOWNLOAD_TEMPLATE_ID, |
|
personalisation: { |
|
name: user.name, |
|
issue_explanation: "We have found this issue in your logs imported to the new version of CORE: |
|
## Missing town or city |
|
The town or city in some logs is missing. This data is required in the new version of CORE.\n", |
|
how_to_fix: "You need to:\n |
|
- download [this spreadsheet for lettings logs](#{link}). This link will expire in one week. To request another link, [contact the CORE helpdesk](https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11). |
|
- fill in the missing address data |
|
- check that the existing address data is correct\n", |
|
duration: "20 minutes", |
|
}, |
|
) |
|
|
|
described_class.new.send_missing_lettings_addresses_csv_download_mail(user, link, duration, %w[missing_town]) |
|
end |
|
end |
|
|
|
describe "#send_missing_sales_addresses_csv_download_mail" do |
|
it "sends a CSV download E-mail via notify" do |
|
link = :link |
|
duration = 20.minutes.to_i |
|
|
|
expect(notify_client).to receive(:send_email).with( |
|
email_address: user.email, |
|
template_id: described_class::CSV_MISSING_SALES_ADDRESSES_DOWNLOAD_TEMPLATE_ID, |
|
personalisation: { |
|
name: user.name, |
|
issue_explanation: "We have found this issue in your logs imported to the new version of CORE: |
|
## Incorrect UPRN\nThe UPRN in some logs may be incorrect, so the wrong address data may have been imported. |
|
|
|
In some of your logs, the UPRN is the same as the purchaser code, but these are different things. Purchaser codes are codes that your organisation uses to identify properties. UPRNs are unique numbers assigned by the Ordnance Survey. |
|
|
|
If a log has the correct UPRN, leave the UPRN unchanged. If the UPRN is incorrect, clear the value and provide the full address instead. Alternatively, you can change the UPRN on the CORE system.\n", |
|
how_to_fix: "You need to:\n |
|
- download [this spreadsheet for sales logs](#{link}). This link will expire in one week. To request another link, [contact the CORE helpdesk](https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11). |
|
- check that the address data is correct |
|
- correct any address errors\n", |
|
duration: "20 minutes", |
|
}, |
|
) |
|
|
|
described_class.new.send_missing_sales_addresses_csv_download_mail(user, link, duration, %w[wrong_uprn]) |
|
end |
|
end |
|
end
|
|
|