Browse Source

CLDC-744-joint-tenancy-validation (#549)

* add joint tenancy validation

* fix validation and spec

* improvements

* updates

* lint fixes

* fix typo

* change message displayed on hhmemb page
pull/619/head
Dushan 3 years ago committed by baarkerlounger
parent
commit
69bdfb2e5b
  1. 9
      app/models/validations/tenancy_validations.rb
  2. 2
      config/forms/2022_2023.json
  3. 3
      config/locales/en.yml
  4. 24
      spec/models/validations/tenancy_validations_spec.rb

9
app/models/validations/tenancy_validations.rb

@ -32,4 +32,13 @@ module Validations::TenancyValidations
def validate_other_tenancy_type(record) def validate_other_tenancy_type(record)
validate_other_field(record, 3, :tenancy, :tenancyother) validate_other_field(record, 3, :tenancy, :tenancyother)
end end
def validate_joint_tenancy(record)
return unless record.collection_start_year
if record.hhmemb == 1 && record.joint != 2 && record.collection_start_year >= 2022
record.errors.add :joint, I18n.t("validations.tenancy.not_joint")
record.errors.add :hhmemb, I18n.t("validations.tenancy.joint_more_than_one_member")
end
end
end end

2
config/forms/2022_2023.json

@ -946,7 +946,7 @@
"header": "", "header": "",
"description": "", "description": "",
"questions": { "questions": {
"joint_tenancy": { "joint": {
"check_answer_label": "Is this a joint tenancy?", "check_answer_label": "Is this a joint tenancy?",
"header": "Is this a joint tenancy?", "header": "Is this a joint tenancy?",
"hint_text": "For example, 27 3 2021.", "hint_text": "For example, 27 3 2021.",

3
config/locales/en.yml

@ -221,6 +221,9 @@ en:
secure: "Secure (including flexible) should be between 2 and 99 years or not specified" 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" 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" 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"
joint_more_than_one_member: "There must be more than one person in the household as you've told us this is a joint tenancy"
declaration: declaration:
missing: "You must show the DLUHC privacy notice to the tenant before you can submit this log." missing: "You must show the DLUHC privacy notice to the tenant before you can submit this log."

24
spec/models/validations/tenancy_validations_spec.rb

@ -146,4 +146,28 @@ RSpec.describe Validations::TenancyValidations do
end end
end 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(:record) { FactoryBot.create(:case_log, startdate: Time.zone.local(2022, 5, 1)) }
let(:expected_error) { I18n.t("validations.tenancy.not_joint") }
let(:hhmemb_expected_error) { I18n.t("validations.tenancy.joint_more_than_one_member") }
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))
expect(record.errors["hhmemb"]).to include(match(hhmemb_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
expect(record.errors["hhmemb"]).to be_empty
end
end
end
end end

Loading…
Cancel
Save