Browse Source

Added exception handling to export

pull/581/head
Ted 3 years ago
parent
commit
d40f5a891d
  1. 4
      app/services/exports/case_log_export_service.rb
  2. 14
      spec/services/exports/case_log_export_service_spec.rb

4
app/services/exports/case_log_export_service.rb

@ -11,6 +11,9 @@ module Exports
export = save_export_run(current_time)
write_master_manifest(export)
write_export_data(case_logs)
export.save!
rescue StandardError => e
@logger.error "#{e.class}: #{e.message}. Caller: #{e.backtrace.first}"
end
def is_omitted_field?(field_name)
@ -31,7 +34,6 @@ module Exports
export = LogsExport.new
export.daily_run_number = last_daily_run_number + 1
export.started_at = current_time
export.save!
export
end

14
spec/services/exports/case_log_export_service_spec.rb

@ -83,14 +83,14 @@ RSpec.describe Exports::CaseLogExportService do
export = LogsExport.new(started_at: start_time, daily_run_number: 1)
export.save!
params = { from: start_time, to: time_now }
expect(CaseLog).to receive(:where).with("updated_at >= :from and updated_at <= :to", params).and_return([])
allow(CaseLog).to receive(:where).with("updated_at >= :from and updated_at <= :to", params).and_return([])
export_service.export_case_logs
end
context "when this is the first export" do
it "gets the logs for the timeframe up until the current time" do
params = { to: time_now }
expect(CaseLog).to receive(:where).with("updated_at <= :to", params).and_return([])
allow(CaseLog).to receive(:where).with("updated_at <= :to", params).and_return([])
export_service.export_case_logs
end
end
@ -106,5 +106,15 @@ RSpec.describe Exports::CaseLogExportService do
export_service.export_case_logs
end
end
context "when export has an error" do
it "does not save a record in the database" do
allow(storage_service).to receive(:write_file).and_raise(StandardError.new("This is an exception"))
export = LogsExport.new
allow(LogsExport).to receive(:new).and_return(export)
expect(export).not_to receive(:save!)
export_service.export_case_logs
end
end
end
end

Loading…
Cancel
Save