From aedd1f22a61ef0d7de32a00e241b0f2d64c38f61 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Mon, 15 May 2023 13:40:02 +0100 Subject: [PATCH] field_11 must be present if field_10 == 12 --- .../bulk_upload/sales/year2023/row_parser.rb | 8 ++++++++ .../bulk_upload/sales/year2023/row_parser_spec.rb | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 73db6d9a1..b3b74f615 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -388,6 +388,14 @@ class BulkUpload::Sales::Year2023::RowParser }, on: :after_log + validates :field_11, + presence: { + message: I18n.t("validations.not_answered", question: "type of outright sale"), + category: :setup, + if: proc { field_10 == 12 }, + }, + on: :after_log + validates :field_13, presence: { message: I18n.t("validations.not_answered", question: "will the buyers live in the property"), diff --git a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb index 840ba8b6e..d6ef57d91 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -340,7 +340,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "has errors on correct setup fields" do errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort - expect(errors).to eql(%i[field_1 field_13 field_14 field_3 field_4 field_5]) + expect(errors).to eql(%i[field_1 field_11 field_13 field_14 field_3 field_4 field_5]) end end @@ -605,6 +605,16 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do end end + describe "#field_11" do # type of other outright sale + context "when an invalid option" do + let(:attributes) { setup_section_params.merge({ field_10: "12", field_11: nil }) } + + it "returns setup error" do + expect(parser.errors.where(:field_11, category: :setup)).to be_present + end + end + end + describe "#field_19" do # UPRN context "when UPRN known and lookup found" do let(:attributes) { setup_section_params.merge({ field_19: "100023336956" }) }