diff --git a/app/services/exports/lettings_log_export_constants.rb b/app/services/exports/lettings_log_export_constants.rb index ddef610d5..b954a5afd 100644 --- a/app/services/exports/lettings_log_export_constants.rb +++ b/app/services/exports/lettings_log_export_constants.rb @@ -231,5 +231,7 @@ module Exports::LettingsLogExportConstants (1..8).each do |index| YEAR_2026_EXPORT_FIELDS << "sexrab#{index}" + YEAR_2026_EXPORT_FIELDS << "gender_same_as_sex#{index}" + YEAR_2026_EXPORT_FIELDS << "gender_description#{index}" end end diff --git a/spec/fixtures/exports/general_needs_log_26_27.xml b/spec/fixtures/exports/general_needs_log_26_27.xml index 71b334a4b..745497f0c 100644 --- a/spec/fixtures/exports/general_needs_log_26_27.xml +++ b/spec/fixtures/exports/general_needs_log_26_27.xml @@ -6,6 +6,8 @@ 35 F F + 1 + 2 6 0 @@ -13,30 +15,44 @@ 32 M M + 2 + Non-binary 6 + + + + + + + + + + + + 1 4 diff --git a/spec/services/exports/lettings_log_export_service_spec.rb b/spec/services/exports/lettings_log_export_service_spec.rb index 5e1dff30c..38cb2e130 100644 --- a/spec/services/exports/lettings_log_export_service_spec.rb +++ b/spec/services/exports/lettings_log_export_service_spec.rb @@ -497,7 +497,41 @@ RSpec.describe Exports::LettingsLogExportService do end context "and one lettings log is available for export" do - let!(:lettings_log) { FactoryBot.create(:lettings_log, :completed, startdate: Time.zone.local(2026, 4, 3), assigned_to: user, age1: 35, sexrab1: "F", sex1: "F", age2: 32, sexrab2: "M", sex2: "M", ppostcode_full: "A1 1AA", nationality_all_group: 13, propcode: "123", postcode_full: "SE2 6RT", tenancycode: "BZ737", voiddate: Time.zone.local(2021, 11, 3), mrcdate: Time.zone.local(2022, 5, 5, 10, 36, 49), tenancylength: 5, underoccupation_benefitcap: 4, creation_method: 2, bulk_upload_id: 1, 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", manual_address_entry_selected: false, uprn: "1", uprn_known: 1) } + let!(:lettings_log) do + FactoryBot.create( + :lettings_log, + :completed, + startdate: Time.zone.local(2026, 4, 3), + assigned_to: user, + age1: 35, + sexrab1: "F", + sex1: "F", + age2: 32, + sexrab2: "M", + sex2: "M", + ppostcode_full: "A1 1AA", + nationality_all_group: 13, + propcode: "123", + postcode_full: "SE2 6RT", + tenancycode: "BZ737", + voiddate: Time.zone.local(2021, 11, 3), + mrcdate: Time.zone.local(2022, 5, 5, 10, 36, 49), + tenancylength: 5, + underoccupation_benefitcap: 4, + creation_method: 2, + bulk_upload_id: 1, + 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", + manual_address_entry_selected: false, + uprn: "1", + uprn_known: 1, + gender_description2: "Non-binary", + ) + end let(:expected_zip_filename) { "core_2026_2027_apr_mar_f0001_inc0001.zip" } let(:expected_data_filename) { "core_2026_2027_apr_mar_f0001_inc0001_pt001.xml" } let(:xml_export_file) { File.open("spec/fixtures/exports/general_needs_log_26_27.xml", "r:UTF-8") } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 3a4a7daed..73a1c06af 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -141,7 +141,9 @@ RSpec::Matchers.define :have_same_xml_contents_as do |expected| end failure_message do |actual| - "expected that unordered #{fix_xml_content_order(actual)} would be equal to unordered #{fix_xml_content_order(expected)}" + actual_unique_lines = fix_xml_content_order(actual).split("\n") - fix_xml_content_order(expected).split("\n") + expected_unique_lines = fix_xml_content_order(expected).split("\n") - fix_xml_content_order(actual).split("\n") + "expected that unordered #{fix_xml_content_order(actual)} would be equal to unordered #{fix_xml_content_order(expected)}. Unique lines in actual: #{actual_unique_lines.join("\n")}. Unique lines in expected: #{expected_unique_lines.join("\n")}" end failure_message_when_negated do |actual|