diff --git a/spec/models/validations/household_validations_spec.rb b/spec/models/validations/household_validations_spec.rb index e0b7d03c5..3c0529f33 100644 --- a/spec/models/validations/household_validations_spec.rb +++ b/spec/models/validations/household_validations_spec.rb @@ -385,34 +385,48 @@ RSpec.describe Validations::HouseholdValidations do end describe "#validate_person_age_matches_economic_status" do - context "when the household contains a person under 16" do - it "validates that person's economic status must be Child" do - record.age2 = 14 - record.ecstat2 = 1 - household_validator.validate_person_age_matches_economic_status(record) - expect(record.errors["ecstat2"]) - .to include(match I18n.t("validations.household.ecstat.child_under_16", person_num: 2)) - expect(record.errors["age2"]) - .to include(match I18n.t("validations.household.age.child_under_16_ecstat", person_num: 2)) + context "with 2023 logs" do + let(:log_date) { Time.zone.local(2023, 4, 1) } + + before do + Timecop.freeze(log_date) + Singleton.__init__(FormHandler) end - it "expects that person's economic status is Child" do - record.age2 = 14 - record.ecstat2 = 9 - household_validator.validate_person_age_matches_economic_status(record) - expect(record.errors["ecstat2"]).to be_empty - expect(record.errors["age2"]).to be_empty + after do + Timecop.return + Singleton.__init__(FormHandler) end - it "validates that a person with economic status 'child' must be under 16" do - record.age2 = 21 - record.relat2 = "C" - record.ecstat2 = 9 - household_validator.validate_person_age_matches_economic_status(record) - expect(record.errors["ecstat2"]) - .to include(match I18n.t("validations.household.ecstat.child_over_16", person_num: 2)) - expect(record.errors["age2"]) - .to include(match I18n.t("validations.household.age.child_over_16", person_num: 2)) + context "when the household contains a person under 16" do + it "validates that person's economic status must be Child" do + record.age2 = 14 + record.ecstat2 = 1 + household_validator.validate_person_age_matches_economic_status(record) + expect(record.errors["ecstat2"]) + .to include(match I18n.t("validations.household.ecstat.child_under_16", person_num: 2)) + expect(record.errors["age2"]) + .to include(match I18n.t("validations.household.age.child_under_16_ecstat", person_num: 2)) + end + + it "expects that person's economic status is Child" do + record.age2 = 14 + record.ecstat2 = 9 + household_validator.validate_person_age_matches_economic_status(record) + expect(record.errors["ecstat2"]).to be_empty + expect(record.errors["age2"]).to be_empty + end + + it "validates that a person with economic status 'child' must be under 16" do + record.age2 = 21 + record.relat2 = "C" + record.ecstat2 = 9 + household_validator.validate_person_age_matches_economic_status(record) + expect(record.errors["ecstat2"]) + .to include(match I18n.t("validations.household.ecstat.child_over_16", person_num: 2)) + expect(record.errors["age2"]) + .to include(match I18n.t("validations.household.age.child_over_16", person_num: 2)) + end end end