From 0dd87f1cb2dfcfff1d34f323b3fd851ba4fe9d6b Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 22 Feb 2024 11:22:03 +0000 Subject: [PATCH] Update validations for 2024 lettings --- .../validations/household_validations.rb | 51 ++- app/views/layouts/application.html.erb | 4 - config/locales/en.yml | 8 + .../validations/household_validations_spec.rb | 329 ++++++++++++++---- 4 files changed, 303 insertions(+), 89 deletions(-) diff --git a/app/models/validations/household_validations.rb b/app/models/validations/household_validations.rb index 817a4f3e6..ec27e8414 100644 --- a/app/models/validations/household_validations.rb +++ b/app/models/validations/household_validations.rb @@ -88,8 +88,6 @@ module Validations::HouseholdValidations end def validate_person_age_matches_relationship(record) - return if record.form.start_year_after_2024? - (2..8).each do |person_num| age = record.public_send("age#{person_num}") relationship = record.public_send("relat#{person_num}") @@ -99,12 +97,15 @@ module Validations::HouseholdValidations record.errors.add "relat#{person_num}", I18n.t("validations.household.relat.child_under_16_lettings", person_num:) record.errors.add "age#{person_num}", I18n.t("validations.household.age.child_under_16_relat_lettings", person_num:) end + + if record.form.start_year_after_2024? && (age > 19 && tenant_is_child?(relationship)) + record.errors.add "relat#{person_num}", I18n.t("validations.household.relat.child_over_19", person_num:) + record.errors.add "age#{person_num}", I18n.t("validations.household.age.child_over_19_relat", person_num:) + end end end def validate_person_age_and_relationship_matches_economic_status(record) - return if record.form.start_year_after_2024? - (2..8).each do |person_num| age = record.public_send("age#{person_num}") economic_status = record.public_send("ecstat#{person_num}") @@ -117,16 +118,44 @@ module Validations::HouseholdValidations child = tenant_is_child?(relationship) if age_between_16_19 && !(student || economic_status_refused) && child - record.errors.add "age#{person_num}", I18n.t("validations.household.age.student_16_19.cannot_be_16_19.child_not_student") - record.errors.add "ecstat#{person_num}", I18n.t("validations.household.ecstat.student_16_19.must_be_student") # 1 - record.errors.add "relat#{person_num}", I18n.t("validations.household.relat.student_16_19.cannot_be_child.16_19_not_student") + if record.form.start_year_after_2024? + record.errors.add "ecstat#{person_num}", I18n.t("validations.household.ecstat.student_16_19.must_be_student_2024", person_num:) + else + record.errors.add "age#{person_num}", I18n.t("validations.household.age.student_16_19.cannot_be_16_19.child_not_student") + record.errors.add "ecstat#{person_num}", I18n.t("validations.household.ecstat.student_16_19.must_be_student") # 1 + record.errors.add "relat#{person_num}", I18n.t("validations.household.relat.student_16_19.cannot_be_child.16_19_not_student") + end + end + + if !age_between_16_19 && student && child + if record.form.start_year_after_2024? + record.errors.add "age#{person_num}", I18n.t("validations.household.age.student_16_19.must_be_16_19_2024", person_num:) + else + record.errors.add "age#{person_num}", I18n.t("validations.household.age.student_16_19.must_be_16_19") # 2 + record.errors.add "ecstat#{person_num}", I18n.t("validations.household.ecstat.student_16_19.cannot_be_student.child_not_16_19") + record.errors.add "relat#{person_num}", I18n.t("validations.household.relat.student_16_19.cannot_be_child.student_not_16_19") + end + end + + if student && age_between_16_19 && !child && record.form.start_year_after_2024? + record.errors.add "relat#{person_num}", I18n.t("validations.household.relat.student_16_19.must_be_child_2024", person_num:) end + end + end + + def validate_child_12_years_younger(record) + return unless record.form.start_year_after_2024? + + (2..8).each do |person_num| + age = record.public_send("age#{person_num}") + relationship = record.public_send("relat#{person_num}") + next unless age && record.age1 && relationship - next unless !age_between_16_19 && student && child + next unless age > record.age1 - 12 && tenant_is_child?(relationship) - record.errors.add "age#{person_num}", I18n.t("validations.household.age.student_16_19.must_be_16_19") # 2 - record.errors.add "ecstat#{person_num}", I18n.t("validations.household.ecstat.student_16_19.cannot_be_student.child_not_16_19") - record.errors.add "relat#{person_num}", I18n.t("validations.household.relat.student_16_19.cannot_be_child.student_not_16_19") + record.errors.add "age1", I18n.t("validations.household.age.age1_child_12_years_younger_2024", person_num:) + record.errors.add "age#{person_num}", I18n.t("validations.household.age.child_12_years_younger_2024", person_num:) + record.errors.add "relat#{person_num}", I18n.t("validations.household.relat.child_12_years_younger_2024", person_num:) end end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 1ed5014c3..c33dedfd9 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -7,10 +7,6 @@ <%= tag.meta name: "viewport", content: "width=device-width, initial-scale=1" %> <%= tag.meta property: "og:image", content: asset_path("images/govuk-opengraph-image.png") %> <%= tag.meta name: "theme-color", content: "#0b0c0c" %> - <%= favicon_link_tag asset_path("images/favicon.ico"), type: nil, sizes: "48x48" %> - <%= favicon_link_tag asset_path("images/favicon.svg"), type: "image/svg+xml", sizes: "any" %> - <%= favicon_link_tag asset_path("images/govuk-icon-mask.svg"), rel: "mask-icon", color: "#0b0c0c", type: nil %> - <%= favicon_link_tag asset_path("images/govuk-icon-180.png"), rel: "apple-touch-icon", type: nil %> <%= stylesheet_link_tag "application" %> <%= javascript_include_tag "vendor/html5shiv.min.js" %>