diff --git a/spec/models/validations/household_validations_spec.rb b/spec/models/validations/household_validations_spec.rb index b8a2dba23..9afca91e3 100644 --- a/spec/models/validations/household_validations_spec.rb +++ b/spec/models/validations/household_validations_spec.rb @@ -6,62 +6,6 @@ RSpec.describe Validations::HouseholdValidations do let(:validator_class) { Class.new { include Validations::HouseholdValidations } } let(:record) { FactoryBot.create(:case_log) } - describe "age validations" do - it "validates that person 1's age is a number" do - record.age1 = "random" - household_validator.validate_numeric_min_max(record) - expect(record.errors["age1"]) - .to include(match I18n.t("validations.numeric.valid", field: "Lead tenant’s age", min: 16, max: 120)) - end - - it "validates that other household member ages are a number" do - record.age2 = "random" - household_validator.validate_numeric_min_max(record) - expect(record.errors["age2"]) - .to include(match I18n.t("validations.numeric.valid", field: "Person 2’s age", min: 1, max: 120)) - end - - it "validates that person 1's age is greater than 16" do - record.age1 = 15 - household_validator.validate_numeric_min_max(record) - expect(record.errors["age1"]) - .to include(match I18n.t("validations.numeric.valid", field: "Lead tenant’s age", min: 16, max: 120)) - end - - it "validates that other household member ages are greater than 1" do - record.age2 = 0 - household_validator.validate_numeric_min_max(record) - expect(record.errors["age2"]) - .to include(match I18n.t("validations.numeric.valid", field: "Person 2’s age", min: 1, max: 120)) - end - - it "validates that person 1's age is less than 121" do - record.age1 = 121 - household_validator.validate_numeric_min_max(record) - expect(record.errors["age1"]) - .to include(match I18n.t("validations.numeric.valid", field: "Lead tenant’s age", min: 16, max: 120)) - end - - it "validates that other household member ages are greater than 121" do - record.age2 = 123 - household_validator.validate_numeric_min_max(record) - expect(record.errors["age2"]) - .to include(match I18n.t("validations.numeric.valid", field: "Person 2’s age", min: 1, max: 120)) - end - - it "validates that person 1's age is between 16 and 120" do - record.age1 = 63 - household_validator.validate_numeric_min_max(record) - expect(record.errors["age1"]).to be_empty - end - - it "validates that other household member ages are between 1 and 120" do - record.age6 = 45 - household_validator.validate_numeric_min_max(record) - expect(record.errors["age6"]).to be_empty - end - end - describe "reasonable preference validations" do context "when reasonable preference is homeless" do context "when the tenant was not previously homeless" do diff --git a/spec/models/validations/shared_validations_spec.rb b/spec/models/validations/shared_validations_spec.rb new file mode 100644 index 000000000..1938e531b --- /dev/null +++ b/spec/models/validations/shared_validations_spec.rb @@ -0,0 +1,66 @@ +require "rails_helper" + +RSpec.describe Validations::HouseholdValidations do + subject(:household_validator) { validator_class.new } + + let(:validator_class) { Class.new { include Validations::HouseholdValidations } } + let(:record) { FactoryBot.create(:case_log) } + + describe "numeric min max validations" do + context "when validating age" do + it "validates that person 1's age is a number" do + record.age1 = "random" + household_validator.validate_numeric_min_max(record) + expect(record.errors["age1"]) + .to include(match I18n.t("validations.numeric.valid", field: "Lead tenant’s age", min: 16, max: 120)) + end + + it "validates that other household member ages are a number" do + record.age2 = "random" + household_validator.validate_numeric_min_max(record) + expect(record.errors["age2"]) + .to include(match I18n.t("validations.numeric.valid", field: "Person 2’s age", min: 1, max: 120)) + end + + it "validates that person 1's age is greater than 16" do + record.age1 = 15 + household_validator.validate_numeric_min_max(record) + expect(record.errors["age1"]) + .to include(match I18n.t("validations.numeric.valid", field: "Lead tenant’s age", min: 16, max: 120)) + end + + it "validates that other household member ages are greater than 1" do + record.age2 = 0 + household_validator.validate_numeric_min_max(record) + expect(record.errors["age2"]) + .to include(match I18n.t("validations.numeric.valid", field: "Person 2’s age", min: 1, max: 120)) + end + + it "validates that person 1's age is less than 121" do + record.age1 = 121 + household_validator.validate_numeric_min_max(record) + expect(record.errors["age1"]) + .to include(match I18n.t("validations.numeric.valid", field: "Lead tenant’s age", min: 16, max: 120)) + end + + it "validates that other household member ages are greater than 121" do + record.age2 = 123 + household_validator.validate_numeric_min_max(record) + expect(record.errors["age2"]) + .to include(match I18n.t("validations.numeric.valid", field: "Person 2’s age", min: 1, max: 120)) + end + + it "validates that person 1's age is between 16 and 120" do + record.age1 = 63 + household_validator.validate_numeric_min_max(record) + expect(record.errors["age1"]).to be_empty + end + + it "validates that other household member ages are between 1 and 120" do + record.age6 = 45 + household_validator.validate_numeric_min_max(record) + expect(record.errors["age6"]).to be_empty + end + end + end +end