diff --git a/app/models/validations/household_validations.rb b/app/models/validations/household_validations.rb index d47b674ae..2f57a1a89 100644 --- a/app/models/validations/household_validations.rb +++ b/app/models/validations/household_validations.rb @@ -66,8 +66,7 @@ module Validations::HouseholdValidations end def validate_condition_effects(record) - all_options = [record.illness_type_1, record.illness_type_2, record.illness_type_3, record.illness_type_4, record.illness_type_5, record.illness_type_6, record.illness_type_7, record.illness_type_8, record.illness_type_9, record.illness_type_10] - if all_options.count(1) >= 1 && record.illness != 0 + if has_illness?(record) && record.illness != 0 record.errors.add :condition_effects, I18n.t("validations.household.condition_effects.no_choices") end end @@ -114,6 +113,11 @@ module Validations::HouseholdValidations private + def has_illness?(record) + all_options = [record.illness_type_1, record.illness_type_2, record.illness_type_3, record.illness_type_4, record.illness_type_5, record.illness_type_6, record.illness_type_7, record.illness_type_8, record.illness_type_9, record.illness_type_10] + return all_options.count(1) >= 1 + end + def women_of_child_bearing_age_in_household(record) (1..8).any? do |n| next if record["sex#{n}"].nil? || record["age#{n}"].nil? diff --git a/spec/models/validations/household_validations_spec.rb b/spec/models/validations/household_validations_spec.rb index 1fa676cf1..5d9611620 100644 --- a/spec/models/validations/household_validations_spec.rb +++ b/spec/models/validations/household_validations_spec.rb @@ -562,6 +562,15 @@ RSpec.describe Validations::HouseholdValidations do expect(record.errors["condition_effects"]) .to include(match I18n.t("validations.household.condition_effects.no_choices")) end + + it "expects that an illness can be selected if answer to anyone in household with health condition is yes " do + record.illness = 0 + record.illness_type_1 = 1 + record.illness_type_2 = 1 + record.illness_type_3 = 1 + household_validator.validate_condition_effects(record) + expect(record.errors["condition_effects"]).to be_empty + end end describe "accessibility requirement validations" do