Browse Source

Pregnancy validations

pull/297/head
baarkerlounger 3 years ago
parent
commit
3cfc313689
  1. 40
      spec/models/case_log_spec.rb
  2. 55
      spec/models/validations/household_validations_spec.rb

40
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",

55
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

Loading…
Cancel
Save