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.
50 lines
2.5 KiB
50 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
|
|
|