diff --git a/app/models/case_log.rb b/app/models/case_log.rb index fde1c3101..2f411021f 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -106,16 +106,16 @@ class CaseLogValidator < ActiveModel::Validator end def validate_shared_housing_rooms(record) - number_of_tenants = people_in_household(record) - unless record.property_unit_type.nil? if record.property_unit_type == "Bed-sit" && record.property_number_of_bedrooms != 1 record.errors.add :property_unit_type, "A bedsit can only have one bedroom" end - if people_in_household(record) > 1 - if record.property_unit_type.include?("Shared") && (record.property_number_of_bedrooms.to_i == 0 || record.property_number_of_bedrooms.to_i > 7) - record.errors.add :property_unit_type, "A shared house must have 1 to 7 bedrooms" + unless record.household_number_of_other_members.nil? + if record.household_number_of_other_members > 0 + if record.property_unit_type.include?("Shared") && (record.property_number_of_bedrooms.to_i == 0 || record.property_number_of_bedrooms.to_i > 7) + record.errors.add :property_unit_type, "A shared house must have 1 to 7 bedrooms" + end end end @@ -163,15 +163,6 @@ private record["person_#{n}_gender"] == "Female" && record["person_#{n}_age"] >= 16 && record["person_#{n}_age"] <= 50 end end - - def people_in_household(record) - count = 0 - (1..8).any? do |n| - next if record["person_#{n}_gender"].nil? || record["person_#{n}_age"].nil? - count += 1 - end - return count - end end class CaseLog < ApplicationRecord diff --git a/spec/models/case_log_spec.rb b/spec/models/case_log_spec.rb index 317794b60..df480af78 100644 --- a/spec/models/case_log_spec.rb +++ b/spec/models/case_log_spec.rb @@ -108,7 +108,16 @@ RSpec.describe Form, type: :model do it "you must answer less than 8 bedrooms" do expect { CaseLog.create!(property_unit_type: "Shared bungalow", - property_number_of_bedrooms: 8) + property_number_of_bedrooms: 8, + household_number_of_other_members: 1) + }.to raise_error(ActiveRecord::RecordInvalid) + end + + it "you must answer less than 8 bedrooms" do + expect { + CaseLog.create!(property_unit_type: "Shared bungalow", + property_number_of_bedrooms: 4, + household_number_of_other_members: 0) }.to raise_error(ActiveRecord::RecordInvalid) end