Browse Source

handle errors during bulk upload parsing

pull/1264/head
Phil Lee 3 years ago
parent
commit
daa1f187d7
  1. 3
      app/services/bulk_upload/processor.rb
  2. 44
      spec/services/bulk_upload/processor_spec.rb

3
app/services/bulk_upload/processor.rb

@ -13,6 +13,9 @@ class BulkUpload::Processor
validator.call validator.call
create_logs if validator.create_logs? create_logs if validator.create_logs?
send_success_mail send_success_mail
rescue StandardError => e
Sentry.capture_exception(e)
send_failure_mail
ensure ensure
downloader.delete_local_file! downloader.delete_local_file!
end end

44
spec/services/bulk_upload/processor_spec.rb

@ -47,7 +47,49 @@ RSpec.describe BulkUpload::Processor do
end end
end end
context "when the bulk upload processing throws an error" context "when the bulk upload processing throws an error" do
let(:mock_downloader) do
instance_double(
BulkUpload::Downloader,
call: nil,
path: file_fixture("2022_23_lettings_bulk_upload.csv"),
delete_local_file!: nil,
)
end
let(:mock_validator) do
instance_double(
BulkUpload::Lettings::Validator,
invalid?: false,
)
end
before do
allow(BulkUpload::Downloader).to receive(:new).with(bulk_upload:).and_return(mock_downloader)
allow(BulkUpload::Lettings::Validator).to receive(:new).and_return(mock_validator)
allow(mock_validator).to receive(:call).and_raise(StandardError)
end
it "sends failure email" do
mail_double = instance_double("ActionMailer::MessageDelivery", deliver_later: nil)
allow(BulkUploadMailer).to receive(:send_bulk_upload_failed_service_error_mail).and_return(mail_double)
processor.call
expect(BulkUploadMailer).to have_received(:send_bulk_upload_failed_service_error_mail)
expect(mail_double).to have_received(:deliver_later)
end
it "we log the failure" do
allow(Sentry).to receive(:capture_exception)
processor.call
expect(Sentry).to have_received(:capture_exception)
end
end
context "when processing a bulk upload with errors" do context "when processing a bulk upload with errors" do
let(:mock_downloader) do let(:mock_downloader) do

Loading…
Cancel
Save