diff --git a/app/services/bulk_upload/lettings/year2023/csv_parser.rb b/app/services/bulk_upload/lettings/year2023/csv_parser.rb index 6b441ab7b..ea686566d 100644 --- a/app/services/bulk_upload/lettings/year2023/csv_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/csv_parser.rb @@ -43,8 +43,11 @@ private end def field_numbers - # TODO: handle if there are no headers - rows[row_offset - 1][col_offset..].map { |h| h.present? ? "field_#{h}" : "field_blank" } + if with_headers? + rows[row_offset - 1][col_offset..].map { |h| h.present? ? "field_#{h}" : "field_blank" } + else + default_field_numbers + end end def with_headers? diff --git a/spec/services/bulk_upload/lettings/year2023/csv_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/csv_parser_spec.rb index af063e7bf..e8c149329 100644 --- a/spec/services/bulk_upload/lettings/year2023/csv_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2023/csv_parser_spec.rb @@ -55,25 +55,21 @@ RSpec.describe BulkUpload::Lettings::Year2023::CsvParser do end end - # context "when parsing csv without headers" do - # let(:file) { Tempfile.new } - # let(:path) { file.path } - # let(:log) { build(:lettings_log, :completed) } - - # before do - # file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) - # file.rewind - # end + context "when parsing csv without headers" do + before do + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2023_csv_row) + file.rewind + end - # it "returns correct offsets" do - # expect(service.row_offset).to eq(0) - # expect(service.col_offset).to eq(0) - # end + it "returns correct offsets" do + expect(service.row_offset).to eq(0) + expect(service.col_offset).to eq(0) + end - # it "parses csv correctly" do - # expect(service.row_parsers[0].field_12.to_i).to eql(log.age1) - # end - # end + it "parses csv correctly" do + expect(service.row_parsers[0].field_13).to eql(log.tenancycode) + end + end # context "when parsing with BOM aka byte order mark" do # let(:file) { Tempfile.new } diff --git a/spec/support/bulk_upload/log_to_csv.rb b/spec/support/bulk_upload/log_to_csv.rb index 4ad8f4c98..130494d0f 100644 --- a/spec/support/bulk_upload/log_to_csv.rb +++ b/spec/support/bulk_upload/log_to_csv.rb @@ -8,20 +8,20 @@ class BulkUpload::LogToCsv @overrides = overrides end - def prefix_offset + def row_prefix [nil] * col_offset end def to_2022_csv_row - (prefix_offset + to_2022_row).flatten.join(",") + line_ending + (row_prefix + to_2022_row).flatten.join(",") + line_ending end def to_2023_csv_row(seed: nil) if seed row = to_2023_row.shuffle(random: Random.new(seed)) - (prefix_offset + row).flatten.join(",") + line_ending + (row_prefix + row).flatten.join(",") + line_ending else - (prefix_offset + to_2023_row).flatten.join(",") + line_ending + (row_prefix + to_2023_row).flatten.join(",") + line_ending end end