From 866469d54d637bc44962650306c05349b6508857 Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 13 Mar 2024 12:22:45 +0000 Subject: [PATCH] Don't allow don't know as 2023 mortgageused --- .../bulk_upload/sales/year2023/row_parser.rb | 9 ++++++ .../sales/year2023/row_parser_spec.rb | 30 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 158efec57..88815a089 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -450,6 +450,7 @@ class BulkUpload::Sales::Year2023::RowParser on: :after_log validate :validate_buyer1_economic_status, on: :before_log + validate :validate_mortgageused, on: :before_log validate :validate_nulls, on: :after_log validate :validate_valid_radio_option, on: :before_log @@ -1332,4 +1333,12 @@ private errors.add(:field_35, "Buyer 1 cannot be a child under 16") end end + + def validate_mortgageused + if mortgageused.present? && mortgageused.to_i != 1 && mortgageused.to_i != 2 + errors.add(:field_105, I18n.t("validations.invalid_option", question: "Was a mortgage used for the purchase of this property? - Shared ownership")) if shared_ownership? + errors.add(:field_119, I18n.t("validations.invalid_option", question: "Was a mortgage used for the purchase of this property? - Discounted ownership")) if discounted_ownership? + errors.add(:field_128, I18n.t("validations.invalid_option", question: "Was a mortgage used for the purchase of this property? - Outright sale")) if outright_sale? + end + end end 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 bca7ed817..be8a401cb 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -1020,6 +1020,36 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do end end end + + describe "#field_105" do + let(:attributes) { valid_attributes.merge({ field_7: "1", field_105: "3" }) } + + it "does not allow 3 (don't know) as an option for shared ownership" do + expect(parser.errors[:field_105]).to include("Enter a valid value for Was a mortgage used for the purchase of this property? - Shared ownership") + expect(parser.errors[:field_119]).to be_empty + expect(parser.errors[:field_128]).to be_empty + end + end + + describe "#field_119" do + let(:attributes) { valid_attributes.merge({ field_7: "2", field_9: "8", field_119: "3" }) } + + it "does not allow 3 (don't know) as an option for discounted ownership" do + expect(parser.errors[:field_119]).to include("Enter a valid value for Was a mortgage used for the purchase of this property? - Discounted ownership") + expect(parser.errors[:field_105]).to be_empty + expect(parser.errors[:field_128]).to be_empty + end + end + + describe "#field_128" do + let(:attributes) { valid_attributes.merge({ field_7: "3", field_10: "10", field_128: "3" }) } + + it "does not allow 3 (don't know) as an option for outright sale" do + expect(parser.errors[:field_128]).to include("Enter a valid value for Was a mortgage used for the purchase of this property? - Outright sale") + expect(parser.errors[:field_105]).to be_empty + expect(parser.errors[:field_119]).to be_empty + end + end end describe "#log" do