From fdea107b6fce1d8f40e0131594a245b8f314cd57 Mon Sep 17 00:00:00 2001 From: Kat <54268893+kosiakkatrina@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:33:42 +0000 Subject: [PATCH] Validate reasonpref reason values --- .../bulk_upload/lettings/year2024/row_parser.rb | 12 ++++++++++++ .../lettings/year2024/row_parser_spec.rb | 13 +++++++++++++ 2 files changed, 25 insertions(+) diff --git a/app/services/bulk_upload/lettings/year2024/row_parser.rb b/app/services/bulk_upload/lettings/year2024/row_parser.rb index 3f5227c44..598ae6d75 100644 --- a/app/services/bulk_upload/lettings/year2024/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2024/row_parser.rb @@ -444,6 +444,7 @@ class BulkUpload::Lettings::Year2024::RowParser validate :validate_incomplete_soft_validations, on: :after_log validate :validate_nationality, on: :after_log + validate :validate_reasonpref_reason_values, on: :after_log validate :validate_nulls, on: :after_log @@ -677,6 +678,17 @@ private end end + def validate_reasonpref_reason_values + valid_reasonpref_reason_options = ["0","1"] + ["field_107", "field_108", "field_109", "field_110", "field_111"].each do |field| + if send(field).present? && !valid_reasonpref_reason_options.include?(send(field).to_s) + question_text = QUESTIONS[field.to_sym] + question_text[0] = question_text[0].downcase + errors.add(field.to_sym, I18n.t("#{ERROR_BASE_KEY}.invalid_option", question: question_text)) + end + end + end + def duplicate_check_fields [ "startdate", 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 33ab390f4..a3392e50d 100644 --- a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb @@ -1272,6 +1272,19 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do expect(parser.log.rp_dontknow).to be_nil end end + + context "when some reasonable preference options are set as invalid values" do + let(:attributes) { setup_section_params.merge({ bulk_upload:, field_106: "2", field_107: "2", field_108: "3", field_109: "2", field_110: "3", field_111: "-4" }) } + + it "adds errors" do + parser.valid? + expect(parser.errors[:field_107]).to be_present + expect(parser.errors[:field_108]).to be_present + expect(parser.errors[:field_109]).to be_present + expect(parser.errors[:field_110]).to be_present + expect(parser.errors[:field_111]).to be_present + end + end end describe "#field_116" do # referral