diff --git a/spec/models/case_log_spec.rb b/spec/models/case_log_spec.rb index a5230f6da..ea0a9d305 100644 --- a/spec/models/case_log_spec.rb +++ b/spec/models/case_log_spec.rb @@ -76,46 +76,6 @@ RSpec.describe CaseLog do end context "when validating pregnancy questions" do - it "Cannot answer yes if no female tenants" do - expect { - described_class.create!(preg_occ: "Yes", - sex1: "Male", - age1: 20, - owning_organisation: owning_organisation, - managing_organisation: managing_organisation) - }.to raise_error(ActiveRecord::RecordInvalid) - end - - it "Cannot answer yes if no female tenants within age range" do - expect { - described_class.create!(preg_occ: "Yes", - sex1: "Female", - age1: 51, - owning_organisation: owning_organisation, - managing_organisation: managing_organisation) - }.to raise_error(ActiveRecord::RecordInvalid) - end - - it "Cannot answer prefer not to say if no valid tenants" do - expect { - described_class.create!(preg_occ: "Prefer not to say", - sex1: "Male", - age1: 20, - owning_organisation: owning_organisation, - managing_organisation: managing_organisation) - }.to raise_error(ActiveRecord::RecordInvalid) - end - - it "Can answer yes if valid tenants" do - expect { - described_class.create!(preg_occ: "Yes", - sex1: "Female", - age1: 20, - owning_organisation: owning_organisation, - managing_organisation: managing_organisation) - }.not_to raise_error - end - it "Can answer yes if valid second tenant" do expect { described_class.create!(preg_occ: "Yes", diff --git a/spec/models/validations/household_validations_spec.rb b/spec/models/validations/household_validations_spec.rb index 0d90ee78f..677ae83f2 100644 --- a/spec/models/validations/household_validations_spec.rb +++ b/spec/models/validations/household_validations_spec.rb @@ -110,4 +110,59 @@ RSpec.describe Validations::HouseholdValidations do end end end + + describe "pregnancy validations" do + context "when there are no female tenants" do + it "validates that pregnancy cannot be yes" do + record.preg_occ = "Yes" + record.sex1 = "Male" + household_validator.validate_pregnancy(record) + expect(record.errors["preg_occ"]) + .to include(match I18n.t("validations.household.preg_occ.no_female")) + end + + it "validates that pregnancy cannot be prefer not to say" do + record.preg_occ = "Prefer not to say" + record.sex1 = "Male" + household_validator.validate_pregnancy(record) + expect(record.errors["preg_occ"]) + .to include(match I18n.t("validations.household.preg_occ.no_female")) + end + end + + context "when there are female tenants" do + context "but they are older than 50" do + it "validates that pregnancy cannot be yes" do + record.preg_occ = "Yes" + record.sex1 = "Female" + record.age1 = "51" + household_validator.validate_pregnancy(record) + expect(record.errors["preg_occ"]) + .to include(match I18n.t("validations.household.preg_occ.no_female")) + end + end + + context "and they are the main tenant and under 51" do + it "pregnancy can be yes" do + record.preg_occ = "Yes" + record.sex1 = "Female" + record.age1 = "32" + household_validator.validate_pregnancy(record) + expect(record.errors["preg_occ"]).to be_empty + end + end + + context "and they are another household member and under 51" do + it "pregnancy can be yes" do + record.preg_occ = "Yes" + record.sex1 = "Male" + record.age1 = 25 + record.sex3 = "Female" + record.age3 = "32" + household_validator.validate_pregnancy(record) + expect(record.errors["preg_occ"]).to be_empty + end + end + end + end end