From 6017c25502b0759b8ba503166fd799ab908c399a Mon Sep 17 00:00:00 2001 From: Kat Date: Tue, 4 Jun 2024 12:29:17 +0100 Subject: [PATCH] Correctly construct dates --- .../lettings/year2023/csv_parser.rb | 2 +- .../bulk_upload/sales/year2023/csv_parser.rb | 2 +- .../bulk_upload/lettings/validator_spec.rb | 33 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/app/services/bulk_upload/lettings/year2023/csv_parser.rb b/app/services/bulk_upload/lettings/year2023/csv_parser.rb index 72458ecf8..64e27108f 100644 --- a/app/services/bulk_upload/lettings/year2023/csv_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/csv_parser.rb @@ -111,7 +111,7 @@ private if with_headers? Date.new(row_parsers.first.field_9.to_i + 2000, row_parsers.first.field_8.to_i, row_parsers.first.field_7.to_i) else - Date.new(rows.first[8].to_i + 2000, rows.first[7].to_i, rows.first[6].to_i) + Date.new(rows.first[97].to_i + 2000, rows.first[96].to_i, rows.first[95].to_i) end end end diff --git a/app/services/bulk_upload/sales/year2023/csv_parser.rb b/app/services/bulk_upload/sales/year2023/csv_parser.rb index c6c07e1d5..ec7346f92 100644 --- a/app/services/bulk_upload/sales/year2023/csv_parser.rb +++ b/app/services/bulk_upload/sales/year2023/csv_parser.rb @@ -111,7 +111,7 @@ private def first_record_start_date if with_headers? - Date.new(row_parsers.first.field_4.to_i + 2000, row_parsers.first.field_3.to_i, row_parsers.first.field_2.to_i) + Date.new(row_parsers.first.field_5.to_i + 2000, row_parsers.first.field_4.to_i, row_parsers.first.field_3.to_i) else Date.new(rows.first[3].to_i + 2000, rows.first[2].to_i, rows.first[1].to_i) end diff --git a/spec/services/bulk_upload/lettings/validator_spec.rb b/spec/services/bulk_upload/lettings/validator_spec.rb index 0886b69b7..651088502 100644 --- a/spec/services/bulk_upload/lettings/validator_spec.rb +++ b/spec/services/bulk_upload/lettings/validator_spec.rb @@ -144,6 +144,39 @@ RSpec.describe BulkUpload::Lettings::Validator do end end end + + context "when uploading a 2023 template for 2024 bulk upload" do + let(:bulk_upload) { create(:bulk_upload, user:, year: 2024) } + let(:log) { build(:lettings_log, :completed, startdate: Time.zone.local(2023, 5, 6), tenancycode: "5234234234234") } + + context "with no headers" do + before do + file.write(BulkUpload::LettingsLogToCsv.new(log:, line_ending: "\r\n", col_offset: 0).to_2024_csv_row) + file.close + end + + it "is not valid" do + expect(validator).not_to be_valid + end + end + + context "with headers" do + let(:seed) { rand } + let(:log_to_csv) { BulkUpload::LettingsLogToCsv.new(log:) } + let(:field_numbers) { log_to_csv.default_2023_field_numbers + %w[invalid_field_number] } + let(:field_values) { log_to_csv.to_2023_row + %w[value_for_invalid_field_number] } + + before do + file.write(log_to_csv.custom_field_numbers_row(seed:, field_numbers:)) + file.write(log_to_csv.to_custom_csv_row(seed:, field_values:)) + file.rewind + end + + it "is not valid" do + expect(validator).not_to be_valid + end + end + end end end