From 9e9ec43df9b5ac13a2b7552d83366f001e0a97a0 Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 31 Mar 2023 12:17:50 +0100 Subject: [PATCH] Add errors to relevant fields when no housingneeds are selected with housingneeds options --- .../lettings/year2022/row_parser.rb | 6 ++++- .../lettings/year2022/row_parser_spec.rb | 24 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/services/bulk_upload/lettings/year2022/row_parser.rb b/app/services/bulk_upload/lettings/year2022/row_parser.rb index e443b06e2..2bc747d57 100644 --- a/app/services/bulk_upload/lettings/year2022/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2022/row_parser.rb @@ -538,8 +538,12 @@ private end def validate_no_disabled_needs_conjunction - if field_59 == 1 && [field_55, field_56, field_57, field_58].compact.count.positive? + if field_59 == 1 && [field_55, field_56, field_57, field_58].count(1).positive? errors.add(:field_59, I18n.t("validations.household.housingneeds.no_disabled_needs_conjunction")) + errors.add(:field_55, I18n.t("validations.household.housingneeds.no_disabled_needs_conjunction")) if field_55 == 1 + errors.add(:field_56, I18n.t("validations.household.housingneeds.no_disabled_needs_conjunction")) if field_56 == 1 + errors.add(:field_57, I18n.t("validations.household.housingneeds.no_disabled_needs_conjunction")) if field_57 == 1 + errors.add(:field_58, I18n.t("validations.household.housingneeds.no_disabled_needs_conjunction")) if field_58 == 1 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 a75c3e283..8cb569d89 100644 --- a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb @@ -1462,6 +1462,30 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do expect(parser.errors[:field_55]).to be_blank end end + + context "when housingneeds a and g are selected" do + let(:attributes) { { bulk_upload:, field_55: "1", field_59: "1" } } + + it "sets error on housingneeds a and g" do + parser.valid? + expect(parser.errors[:field_59]).to include("No disabled access needs can’t be selected if you have selected fully wheelchair-accessible housing, wheelchair access to essential rooms, level access housing or other disabled access needs") + expect(parser.errors[:field_55]).to include("No disabled access needs can’t be selected if you have selected fully wheelchair-accessible housing, wheelchair access to essential rooms, level access housing or other disabled access needs") + expect(parser.errors[:field_56]).to be_blank + expect(parser.errors[:field_57]).to be_blank + end + end + + context "when only housingneeds g is selected" do + let(:attributes) { { bulk_upload:, field_55: "0", field_59: "1" } } + + it "does not add any housingneeds errors" do + parser.valid? + expect(parser.errors[:field_59]).to be_blank + expect(parser.errors[:field_55]).to be_blank + expect(parser.errors[:field_56]).to be_blank + expect(parser.errors[:field_57]).to be_blank + end + end end describe "#housingneeds_type" do