diff --git a/app/services/bulk_upload/lettings/year2025/row_parser.rb b/app/services/bulk_upload/lettings/year2025/row_parser.rb index e4e3710fc..3953d7afb 100644 --- a/app/services/bulk_upload/lettings/year2025/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2025/row_parser.rb @@ -443,6 +443,7 @@ class BulkUpload::Lettings::Year2025::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 @@ -676,6 +677,17 @@ private end end + def validate_reasonpref_reason_values + valid_reasonpref_reason_options = %w[0 1] + %w[field_107 field_108 field_109 field_110 field_111].each do |field| + next unless 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 + def duplicate_check_fields [ "startdate", diff --git a/spec/services/bulk_upload/lettings/year2025/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2025/row_parser_spec.rb index 9882c4d8f..a822d6f2a 100644 --- a/spec/services/bulk_upload/lettings/year2025/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2025/row_parser_spec.rb @@ -1083,6 +1083,19 @@ RSpec.describe BulkUpload::Lettings::Year2025::RowParser do expect(parser.errors[:field_111]).to be_present 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