From aed4a729a02a1c302c5eaf6b0ce9de4732063e23 Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 1 Feb 2024 08:27:42 +0000 Subject: [PATCH] Set nationality from lettings BU 24/25 --- .../lettings/year2024/row_parser.rb | 13 +++- .../lettings/year2024/row_parser_spec.rb | 74 +++++++++++++++++++ 2 files changed, 85 insertions(+), 2 deletions(-) diff --git a/app/services/bulk_upload/lettings/year2024/row_parser.rb b/app/services/bulk_upload/lettings/year2024/row_parser.rb index 19bae0ecc..c87cd0c03 100644 --- a/app/services/bulk_upload/lettings/year2024/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2024/row_parser.rb @@ -906,7 +906,7 @@ private ethnic_group: %i[field_44], ethnic: %i[field_44], - national: %i[field_45], + nationality_all: %i[field_45], relat2: %i[field_47], relat3: %i[field_51], @@ -1079,7 +1079,8 @@ private attributes["ethnic_group"] = ethnic_group_from_ethnic attributes["ethnic"] = field_44 - attributes["national"] = field_45 + attributes["nationality_all"] = field_45 + attributes["nationality_all_group"] = nationality_group(attributes["nationality_all"]) attributes["relat2"] = field_47 attributes["relat3"] = field_51 @@ -1466,4 +1467,12 @@ private 0 end end + + def nationality_group(nationality_value) + return unless nationality_value + return 0 if nationality_value.zero? + return 826 if nationality_value == 826 + + 12 + end end diff --git a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb index 5f34ec80a..a37110785 100644 --- a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb @@ -1510,6 +1510,80 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do end end + describe "#field_45" do + context "when field_45 is a 3 digit nationality code" do + let(:attributes) { setup_section_params.merge({ field_45: "036" }) } + + it "is correctly set" do + expect(parser.log.nationality_all).to be(36) + expect(parser.log.nationality_all_group).to be(12) + end + end + + context "when field_45 is a nationality code without the trailing 0s" do + let(:attributes) { setup_section_params.merge({ field_45: "36" }) } + + it "is correctly set" do + expect(parser.log.nationality_all).to be(36) + expect(parser.log.nationality_all_group).to be(12) + end + end + + context "when field_45 is a nationality code with trailing 0s" do + let(:attributes) { setup_section_params.merge({ field_45: "0036" }) } + + it "is correctly set" do + expect(parser.log.nationality_all).to be(36) + expect(parser.log.nationality_all_group).to be(12) + end + end + + context "when field_45 is 0" do + let(:attributes) { setup_section_params.merge({ field_45: "0" }) } + + it "is correctly set" do + expect(parser.log.nationality_all).to be(0) + expect(parser.log.nationality_all_group).to be(0) + end + end + + context "when field_45 is 000" do + let(:attributes) { setup_section_params.merge({ field_45: "000" }) } + + it "is correctly set" do + expect(parser.log.nationality_all).to be(0) + expect(parser.log.nationality_all_group).to be(0) + end + end + + context "when field_45 is 0000" do + let(:attributes) { setup_section_params.merge({ field_45: "0000" }) } + + it "is correctly set" do + expect(parser.log.nationality_all).to be(0) + expect(parser.log.nationality_all_group).to be(0) + end + end + + context "when field_45 is 826" do + let(:attributes) { setup_section_params.merge({ field_45: "826" }) } + + it "is correctly set" do + expect(parser.log.nationality_all).to be(826) + expect(parser.log.nationality_all_group).to be(826) + end + end + + context "when field_45 is 826 with trailing 0s" do + let(:attributes) { setup_section_params.merge({ field_45: "0826" }) } + + it "is correctly set" do + expect(parser.log.nationality_all).to be(826) + expect(parser.log.nationality_all_group).to be(826) + end + end + end + describe "soft validations" do context "when soft validation is triggered" do let(:attributes) { setup_section_params.merge({ field_42: 22, field_46: 5 }) }