Submit social housing lettings and sales data (CORE)
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.

51 lines
2.5 KiB

require "rails_helper"
RSpec.describe Csv::MissingIllnessCsvService do
let(:organisation) { create(:organisation, name: "Illness org") }
let(:user) { create(:user, organisation:, email: "testy@example.com") }
let(:service) { described_class.new(organisation) }
def replace_entity_ids(lettings_log, export_template)
export_template.sub!(/\{id\}/, lettings_log.id.to_s)
end
describe "#create_illness_csv" do
context "when the organisation has lettings logs" do
let!(:lettings_log) do
create(:lettings_log,
:setup_completed,
:with_illness_without_type,
tenancycode: "tenancycode1",
propcode: "propcode1",
startdate: Time.zone.local(2023, 4, 5),
created_by: user,
owning_organisation: organisation,
managing_organisation: organisation,
old_id: "old_id_1")
end
before do
create(:lettings_log, :setup_completed, :with_illness_without_type, startdate: Time.zone.local(2023, 4, 5), owning_organisation: organisation, managing_organisation: organisation, created_by: user)
create(:lettings_log, :setup_completed, :with_illness_without_type, startdate: Time.zone.local(2023, 4, 5), old_id: "old_id_3")
create(:lettings_log, :setup_completed, illness: 0, startdate: Time.zone.local(2023, 4, 5), owning_organisation: organisation, managing_organisation: organisation, created_by: user, old_id: "old_id_4")
create(:lettings_log, :setup_completed, illness: 1, illness_type_1: true, startdate: Time.zone.local(2023, 4, 5), owning_organisation: organisation, managing_organisation: organisation, created_by: user, old_id: "old_id_5")
log = build(:lettings_log, :setup_completed, :with_illness_without_type, startdate: Time.zone.local(2021, 4, 5), owning_organisation: organisation, managing_organisation: organisation, created_by: user, old_id: "old_id_2")
log.save!(validate: false)
end
it "returns a csv with relevant logs" do
illness_csv = replace_entity_ids(lettings_log, File.open("spec/fixtures/files/illness.csv").read)
csv = service.create_illness_csv
expect(csv).to eq(illness_csv)
end
end
context "when the organisation does not have relevant lettings logs" do
it "returns only headers" do
illness_headers_only_csv = File.open("spec/fixtures/files/empty_illness.csv").read
csv = service.create_illness_csv
expect(csv).to eq(illness_headers_only_csv)
end
end
end
end