Browse Source

fix bulk upload tests

- change from mocks to actual code calls
further-bulk-upload-year-fixes
Phil Lee 2 years ago committed by Kat
parent
commit
74d1797ee5
  1. 50
      spec/services/bulk_upload/processor_spec.rb

50
spec/services/bulk_upload/processor_spec.rb

@ -3,7 +3,9 @@ require "rails_helper"
RSpec.describe BulkUpload::Processor do RSpec.describe BulkUpload::Processor do
subject(:processor) { described_class.new(bulk_upload:) } subject(:processor) { described_class.new(bulk_upload:) }
let(:bulk_upload) { create(:bulk_upload, :lettings) } let(:bulk_upload) { create(:bulk_upload, :lettings, user:) }
let(:user) { create(:user, organisation: owning_org) }
let(:owning_org) { create(:organisation, old_visible_id: 123) }
describe "#call" do describe "#call" do
context "when the bulk upload itself is not considered valid" do context "when the bulk upload itself is not considered valid" do
@ -239,7 +241,8 @@ RSpec.describe BulkUpload::Processor do
end end
context "when processing a bulk with perfect data" do context "when processing a bulk with perfect data" do
let(:path) { file_fixture("2022_23_lettings_bulk_upload.csv") } let(:file) { Tempfile.new }
let(:path) { file.path }
let(:mock_downloader) do let(:mock_downloader) do
instance_double( instance_double(
@ -250,34 +253,35 @@ RSpec.describe BulkUpload::Processor do
) )
end end
let(:mock_validator) do let(:log) do
instance_double( build(
BulkUpload::Lettings::Validator, :lettings_log,
call: nil, :completed,
create_logs?: true, renttype: 3,
any_setup_errors?: false, age1: 20,
invalid?: false, owning_organisation: owning_org,
) managing_organisation: owning_org,
end created_by: nil,
national: 18,
let(:mock_creator) do waityear: 9,
instance_double( joint: 2,
BulkUpload::Lettings::LogCreator, tenancy: 9,
call: nil, ppcodenk: 0,
path:, voiddate: nil,
mrcdate: nil,
startdate: Date.new(2022, 10, 1),
) )
end end
before do before do
file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row)
file.rewind
allow(BulkUpload::Downloader).to receive(:new).with(bulk_upload:).and_return(mock_downloader) 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(BulkUpload::Lettings::LogCreator).to receive(:new).with(bulk_upload:, path:).and_return(mock_creator)
end end
it "creates logs" do it "creates logs" do
processor.call expect { processor.call }.to change(LettingsLog, :count).by(1)
expect(mock_creator).to have_received(:call)
end end
it "does not send fix errors email" do it "does not send fix errors email" do
@ -293,8 +297,6 @@ RSpec.describe BulkUpload::Processor do
allow(BulkUploadMailer).to receive(:send_bulk_upload_complete_mail).and_return(mail_double) allow(BulkUploadMailer).to receive(:send_bulk_upload_complete_mail).and_return(mail_double)
create(:lettings_log, :completed, bulk_upload:)
processor.call processor.call
expect(BulkUploadMailer).to have_received(:send_bulk_upload_complete_mail) expect(BulkUploadMailer).to have_received(:send_bulk_upload_complete_mail)

Loading…
Cancel
Save