diff --git a/spec/services/csv/lettings_log_csv_service_spec.rb b/spec/services/csv/lettings_log_csv_service_spec.rb index 0b4396b9e..f2fd786c6 100644 --- a/spec/services/csv/lettings_log_csv_service_spec.rb +++ b/spec/services/csv/lettings_log_csv_service_spec.rb @@ -2,6 +2,8 @@ require "rails_helper" require "rake" RSpec.describe Csv::LettingsLogCsvService do + include CollectionTimeHelper + subject(:task) { Rake::Task["data_import:add_variable_definitions"] } before do @@ -16,7 +18,7 @@ RSpec.describe Csv::LettingsLogCsvService do let(:user) { create(:user, :support, email: "s.port@jeemayle.com") } let(:service) { described_class.new(user:, export_type:, year:) } let(:export_type) { "labels" } - let(:year) { 2024 } + let(:year) { current_collection_start_year } let(:csv) { CSV.parse(service.prepare_csv(LettingsLog.where(id: logs.map(&:id)))) } let(:logs) { [log] } let(:definition_line) { csv.first } @@ -582,199 +584,6 @@ RSpec.describe Csv::LettingsLogCsvService do end end end - - context "when the requested log year is 2024" do - let(:year) { 2024 } - let(:organisation) { create(:organisation, provider_type: "LA", name: "MHCLG") } - let(:log) do - create( - :lettings_log, - :ignore_validation_errors, - created_by: user, - assigned_to: user, - created_at: Time.zone.local(2024, 4, 1), - updated_at: Time.zone.local(2024, 4, 1), - owning_organisation: organisation, - managing_organisation: organisation, - needstype: 1, - renewal: 0, - startdate: Time.zone.local(2024, 4, 1), - rent_type: 1, - tenancycode: "HIJKLMN", - propcode: "ABCDEFG", - declaration: 1, - address_line1: "Address line 1", - town_or_city: "London", - postcode_full: "NW9 5LL", - la: "E09000003", - is_la_inferred: false, - address_line1_as_entered: "address line 1 as entered", - address_line2_as_entered: "address line 2 as entered", - town_or_city_as_entered: "town or city as entered", - county_as_entered: "county as entered", - postcode_full_as_entered: "AB1 2CD", - la_as_entered: "la as entered", - first_time_property_let_as_social_housing: 0, - unitletas: 2, - rsnvac: 6, - unittype_gn: 7, - builtype: 1, - wchair: 1, - beds: 3, - voiddate: Time.zone.local(2024, 3, 30), - majorrepairs: 1, - mrcdate: Time.zone.local(2024, 3, 31), - joint: 3, - startertenancy: 1, - tenancy: 4, - tenancylength: 2, - hhmemb: 4, - age1_known: 0, - age1: 35, - sex1: "F", - ethnic_group: 0, - ethnic: 2, - nationality_all: 36, - ecstat1: 0, - details_known_2: 0, - relat2: "P", - age2_known: 0, - age2: 32, - sex2: "M", - ecstat2: 6, - details_known_3: 1, - details_known_4: 0, - relat4: "R", - age4_known: 1, - sex4: "R", - ecstat4: 10, - armedforces: 1, - leftreg: 4, - reservist: 1, - preg_occ: 2, - housingneeds: 1, - housingneeds_type: 0, - housingneeds_a: 1, - housingneeds_b: 0, - housingneeds_c: 0, - housingneeds_f: 0, - housingneeds_g: 0, - housingneeds_h: 0, - housingneeds_other: 0, - illness: 1, - illness_type_1: 0, - illness_type_2: 1, - illness_type_3: 0, - illness_type_4: 0, - illness_type_5: 0, - illness_type_6: 0, - illness_type_7: 0, - illness_type_8: 0, - illness_type_9: 0, - illness_type_10: 0, - layear: 2, - waityear: 7, - reason: 4, - prevten: 6, - homeless: 1, - ppcodenk: 1, - ppostcode_full: "TN23 6LZ", - previous_la_known: 1, - prevloc: "E07000105", - reasonpref: 1, - rp_homeless: 0, - rp_insan_unsat: 1, - rp_medwel: 0, - rp_hardship: 0, - rp_dontknow: 0, - cbl: 0, - chr: 1, - cap: 0, - accessible_register: 0, - referral: 2, - net_income_known: 0, - incref: 0, - incfreq: 1, - earnings: 268, - hb: 6, - has_benefits: 1, - benefits: 1, - period: 2, - brent: 200, - scharge: 50, - pscharge: 40, - supcharg: 35, - tcharge: 325, - hbrentshortfall: 1, - tshortfall_known: 1, - tshortfall: 12, - ) - end - - context "when exporting with human readable labels" do - let(:export_type) { "labels" } - - context "when the current user is a support user" do - let(:user) { create(:user, :support, organisation:, email: "s.port@jeemayle.com") } - - it "exports the CSV with 2024 ordering and all values correct" do - expected_content = CSV.read("spec/fixtures/files/lettings_log_csv_export_labels_24.csv") - values_to_delete = %w[id] - values_to_delete.each do |attribute| - index = attribute_line.index(attribute) - content_line[index] = nil - end - expect(csv).to eq expected_content - end - end - - context "when the current user is not a support user" do - let(:user) { create(:user, :data_provider, organisation:, email: "choreographer@owtluk.com") } - - it "exports the CSV with all values correct" do - expected_content = CSV.read("spec/fixtures/files/lettings_log_csv_export_non_support_labels_24.csv") - values_to_delete = %w[id] - values_to_delete.each do |attribute| - index = attribute_line.index(attribute) - content_line[index] = nil - end - expect(csv).to eq expected_content - end - end - end - - context "when exporting values as codes" do - let(:export_type) { "codes" } - - context "when the current user is a support user" do - let(:user) { create(:user, :support, organisation:, email: "s.port@jeemayle.com") } - - it "exports the CSV with all values correct" do - expected_content = CSV.read("spec/fixtures/files/lettings_log_csv_export_codes_24.csv") - values_to_delete = %w[id] - values_to_delete.each do |attribute| - index = attribute_line.index(attribute) - content_line[index] = nil - end - expect(csv).to eq expected_content - end - end - - context "when the current user is not a support user" do - let(:user) { create(:user, :data_provider, organisation:, email: "choreographer@owtluk.com") } - - it "exports the CSV with all values correct" do - expected_content = CSV.read("spec/fixtures/files/lettings_log_csv_export_non_support_codes_24.csv") - values_to_delete = %w[id] - values_to_delete.each do |attribute| - index = attribute_line.index(attribute) - content_line[index] = nil - end - expect(csv).to eq expected_content - end - end - end - end end end end