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/554/head
Dushan 3 years ago committed by GitHub
parent
commit
6e9d4a8b87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  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)
validate_other_field(record, 3, :tenancy, :tenancyother)
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

2
config/forms/2022_2023.json

@ -946,7 +946,7 @@
"header": "",
"description": "",
"questions": {
"joint_tenancy": {
"joint": {
"check_answer_label": "Is this a joint tenancy?",
"header": "Is this a joint tenancy?",
"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"
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"
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:
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
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

Loading…
Cancel
Save