From 067c9add89c08fedcd8cb9006c88c1ce4072d399 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Fri, 9 Jun 2023 17:53:17 +0100 Subject: [PATCH] feat: add tests --- .../lettings/year2022/row_parser.rb | 6 +-- .../lettings/year2023/row_parser.rb | 4 +- .../lettings/year2022/row_parser_spec.rb | 47 +++++++++++++++---- .../lettings/year2023/row_parser_spec.rb | 29 ++++++++++++ 4 files changed, 72 insertions(+), 14 deletions(-) diff --git a/app/services/bulk_upload/lettings/year2022/row_parser.rb b/app/services/bulk_upload/lettings/year2022/row_parser.rb index 5051283aa..df4917807 100644 --- a/app/services/bulk_upload/lettings/year2022/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2022/row_parser.rb @@ -692,10 +692,10 @@ private def validate_condition_effects if household_no_illness? - illness_option_fields = [field_119, field_120, field_121, field_122, field_123, field_124, field_125, field_126, field_127, field_128] + illness_option_fields = %i[field_119 field_120 field_121 field_122 field_123 field_124 field_125 field_126 field_127 field_128] illness_option_fields.each do |field| - if field == 1 - errors.add(field, I18n.t("validations.household.condition_effects.no_choices")) + if attributes["#{field}"] == 1 + errors.add(field.to_sym, I18n.t("validations.household.condition_effects.no_choices")) end end end diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index 16d5c44f9..faed0d056 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -627,9 +627,9 @@ private def validate_condition_effects if household_no_illness? - illness_option_fields = [field_98, field_92, field_95, field_90, field_91, field_93, field_94, field_97, field_96, field_99] + illness_option_fields = %i[field_98 field_92 field_95 field_90 field_91 field_93 field_94 field_97 field_96 field_99] illness_option_fields.each do |field| - if field == 1 + if attributes["#{field}"] == 1 errors.add(field, I18n.t("validations.household.condition_effects.no_choices")) end end diff --git a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb index bac02dde6..2cf4da200 100644 --- a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb @@ -649,6 +649,16 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do end end + describe "#field_68 - 70" do + context "when not homeless but reasonable preference for homelessness" do + let(:attributes) { { bulk_upload:, field_68: "1", field_69: "1", field_70: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_70]).to be_present + end + end + end + describe "#field_78" do # referral context "when 3 ie PRP nominated by LA and owning org is LA" do let(:attributes) { { bulk_upload:, field_78: "3", field_111: owning_org.old_visible_id } } @@ -779,6 +789,20 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do end end + describe "#field_103" do + context "when null" do + let(:attributes) { setup_section_params.merge({ field_103: nil }) } + + it "returns an error" do + expect(parser.errors[:field_103]).to be_present + end + + it "populates with correct error message" do + expect(parser.errors[:field_103]).to eql(["You must answer type of building"]) + end + end + end + describe "#field_111" do # owning org context "when no data given" do let(:attributes) { { bulk_upload:, field_1: "1", field_111: "" } } @@ -937,16 +961,21 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do end end - describe "#field_103" do - context "when null" do - let(:attributes) { setup_section_params.merge({ field_103: nil }) } - - it "returns an error" do - expect(parser.errors[:field_103]).to be_present - end + describe "#field_118, field_119 - 128" do + context "when no illness but illnesses answered" do + let(:attributes) { { bulk_upload:, field_118: "2", field_119: "1", field_120: "1", field_121: "1" } } - it "populates with correct error message" do - expect(parser.errors[:field_103]).to eql(["You must answer type of building"]) + it "errors added to correct fields" do + expect(parser.errors[:field_119]).to be_present + expect(parser.errors[:field_120]).to be_present + expect(parser.errors[:field_121]).to be_present + expect(parser.errors[:field_122]).not_to be_present + expect(parser.errors[:field_123]).not_to be_present + expect(parser.errors[:field_124]).not_to be_present + expect(parser.errors[:field_125]).not_to be_present + expect(parser.errors[:field_126]).not_to be_present + expect(parser.errors[:field_127]).not_to be_present + expect(parser.errors[:field_128]).not_to be_present end end end diff --git a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb index 0c885f11d..99b5c5aa6 100644 --- a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb @@ -689,6 +689,35 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do end end + describe "#field_89, field_98 - 99" do + context "when no illness but illnesses answered" do + let(:attributes) { { bulk_upload:, field_89: "2", field_90: "1", field_91: "1", field_92: "1" } } + + it "errors added to correct fields" do + expect(parser.errors[:field_90]).to be_present + expect(parser.errors[:field_91]).to be_present + expect(parser.errors[:field_92]).to be_present + expect(parser.errors[:field_93]).not_to be_present + expect(parser.errors[:field_94]).not_to be_present + expect(parser.errors[:field_95]).not_to be_present + expect(parser.errors[:field_96]).not_to be_present + expect(parser.errors[:field_97]).not_to be_present + expect(parser.errors[:field_98]).not_to be_present + expect(parser.errors[:field_99]).not_to be_present + end + end + end + + describe "#field_105, field_110 - 11" do + context "when not homeless but reasonable preference for homelessness" do + let(:attributes) { { bulk_upload:, field_105: "1", field_110: "1", field_111: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_111]).to be_present + end + end + end + describe "#field_119" do # referral context "when 3 ie PRP nominated by LA and owning org is LA" do let(:attributes) { { bulk_upload:, field_119: "3", field_1: owning_org.old_visible_id } }