Browse Source

Refactor other household member validation specs

pull/304/head
baarkerlounger 3 years ago
parent
commit
6e17f2bd8f
  1. 2
      app/models/validations/household_validations.rb
  2. 11
      spec/models/case_log_spec.rb
  3. 132
      spec/models/validations/household_validations_spec.rb

2
app/models/validations/household_validations.rb

@ -127,7 +127,7 @@ private
relationship = record.public_send("relat#{person_num}") relationship = record.public_send("relat#{person_num}")
return unless age && economic_status && relationship return unless age && economic_status && relationship
if age >= 16 && age <= 19 && relationship == "Child - includes young adult and grown-up" && (economic_status != "Full-time student" || economic_status != "Prefer not to say") if age >= 16 && age <= 19 && relationship == "Child - includes young adult and grown-up" && (economic_status != "Full-time student" && economic_status != "Prefer not to say")
record.errors.add "ecstat#{person_num}", I18n.t("validations.household.ecstat.student_16_19", person_num:) record.errors.add "ecstat#{person_num}", I18n.t("validations.household.ecstat.student_16_19", person_num:)
end end
end end

11
spec/models/case_log_spec.rb

@ -172,17 +172,6 @@ RSpec.describe CaseLog do
end end
context "when validating household members" do context "when validating household members" do
it "validate that persons aged under 16 must have relationship Child" do
expect {
described_class.create!(
age2: 14,
relat2: "Partner",
owning_organisation:,
managing_organisation:,
)
}.to raise_error(ActiveRecord::RecordInvalid)
end
it "validate that persons aged over 70 must be retired" do it "validate that persons aged over 70 must be retired" do
expect { expect {
described_class.create!( described_class.create!(

132
spec/models/validations/household_validations_spec.rb

@ -305,4 +305,136 @@ RSpec.describe Validations::HouseholdValidations do
end end
end end
end end
describe "household member validations" do
it "validates that only 1 partner exists" do
record.relat2 = "Partner"
record.relat3 = "Partner"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["base"])
.to include(match I18n.t("validations.household.relat.one_partner"))
end
it "expects that a tenant can have a partner" do
record.relat3 = "Partner"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["base"]).to be_empty
end
context "when the household contains a person under 16" do
it "validates that person must be a child of the tenant" do
record.age2 = "14"
record.relat2 = "Partner"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["relat2"])
.to include(match I18n.t("validations.household.relat.child_under_16", person_num: 2))
end
it "expects that person is a child of the tenant" do
record.age2 = "14"
record.relat2 = "Child - includes young adult and grown-up"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["relat2"]).to be_empty
end
it "validates that person's economic status must be Child" do
record.age2 = "14"
record.ecstat2 = "Full-time - 30 hours or more"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"])
.to include(match I18n.t("validations.household.ecstat.child_under_16", person_num: 2))
end
it "expects that person's economic status is Child" do
record.age2 = "14"
record.ecstat2 = "Child under 16"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"]).to be_empty
end
end
context "when the household contains a tenant's child between the ages of 16 and 19" do
it "validates that person's economic status must be full time student or refused" do
record.age2 = "17"
record.relat2 = "Child - includes young adult and grown-up"
record.ecstat2 = "Full-time - 30 hours or more"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"])
.to include(match I18n.t("validations.household.ecstat.student_16_19", person_num: 2))
end
it "expects that person can be a full time student" do
record.age2 = "17"
record.relat2 = "Child - includes young adult and grown-up"
record.ecstat2 = "Full-time student"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"]).to be_empty
end
it "expects that person can refuse to share their work status" do
record.age2 = "17"
record.relat2 = "Child - includes young adult and grown-up"
record.ecstat2 = "Prefer not to say"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"]).to be_empty
end
end
context "when the household contains a person over 70" do
it "validates that person must be retired" do
record.age2 = "71"
record.ecstat2 = "Full-time - 30 hours or more"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"])
.to include(match I18n.t("validations.household.ecstat.retired_over_70", person_num: 2))
end
it "expects that person is retired" do
record.age2 = "50"
record.ecstat2 = "Full-time - 30 hours or more"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"]).to be_empty
end
end
context "when the household contains a retired male" do
it "validates that person must be over 65" do
record.age2 = "64"
record.sex2 = "Male"
record.ecstat2 = "Retired"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["age2"])
.to include(match I18n.t("validations.household.age.retired_male"))
end
it "expects that person is over 65" do
record.age2 = "66"
record.sex2 = "Male"
record.ecstat2 = "Retired"
household_validator.validate_household_number_of_other_members(record)
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"]).to be_empty
end
end
context "when the household contains a retired female" do
it "validates that person must be over 60" do
record.age2 = "59"
record.sex2 = "Female"
record.ecstat2 = "Retired"
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["age2"])
.to include(match I18n.t("validations.household.age.retired_female"))
end
it "expects that person is over 60" do
record.age2 = "61"
record.sex2 = "Female"
record.ecstat2 = "Retired"
household_validator.validate_household_number_of_other_members(record)
household_validator.validate_household_number_of_other_members(record)
expect(record.errors["ecstat2"]).to be_empty
end
end
end
end end

Loading…
Cancel
Save