From 8c6d13f0c70fcdc43cc65043b1381b2f0179ba5e Mon Sep 17 00:00:00 2001 From: Dushan Despotovic Date: Thu, 5 May 2022 14:18:06 +0100 Subject: [PATCH] add joint tenancy validation --- app/models/validations/tenancy_validations.rb | 6 ++++++ config/locales/en.yml | 1 + .../validations/tenancy_validations_spec.rb | 20 +++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/app/models/validations/tenancy_validations.rb b/app/models/validations/tenancy_validations.rb index 84af343c6..ef4aaac32 100644 --- a/app/models/validations/tenancy_validations.rb +++ b/app/models/validations/tenancy_validations.rb @@ -32,4 +32,10 @@ module Validations::TenancyValidations def validate_other_tenancy_type(record) validate_other_field(record, 3, :tenancy, :tenancyother) end + + def validate_joint_tenancy(record) + if record.hhmemb == 1 && record.joint != 2 + record.errors.add :joint, I18n.t("validations.tenancy.not_joint") + end + end end diff --git a/config/locales/en.yml b/config/locales/en.yml index e0724df0f..bf0e0130c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -221,6 +221,7 @@ en: secure: "Secure (including flexible) should be between 2 and 99 years or not specified" internal_transfer: "Answer must be secure tenancy as you already told us this tenancy is an internal transfer" cannot_be_internal_transfer: "Answer cannot be internal transfer as you already told us this is not a secure tenancy" + not_joint: "This cannot be a joint tenancy as you've told us there's only one person in the household" declaration: missing: "You must show the DLUHC privacy notice to the tenant before you can submit this log." diff --git a/spec/models/validations/tenancy_validations_spec.rb b/spec/models/validations/tenancy_validations_spec.rb index 711b1481a..93c9506c1 100644 --- a/spec/models/validations/tenancy_validations_spec.rb +++ b/spec/models/validations/tenancy_validations_spec.rb @@ -146,4 +146,24 @@ RSpec.describe Validations::TenancyValidations do end end end + + describe "joint tenancy validation" do + context "when the data inputter has said that there is only one member in the household" do + let(:expected_error) { I18n.t("validations.tenancy.not_joint") } + + it "displays an error if the data inputter says the letting is a joint tenancy" do + record.hhmemb = 1 + record.joint = 1 + tenancy_validator.validate_joint_tenancy(record) + expect(record.errors["joint"]).to include(match(expected_error)) + end + + it "does not display an error if the data inputter says the letting is not a joint tenancy" do + record.hhmemb = 1 + record.joint = 2 + tenancy_validator.validate_joint_tenancy(record) + expect(record.errors["joint"]).to be_empty + end + end + end end