From 40be295112b5361a8682c62a3159b076b9699184 Mon Sep 17 00:00:00 2001 From: Kat Date: Tue, 2 May 2023 12:41:00 +0100 Subject: [PATCH] Update validation: min retirement --- ...ead_tenant_under_retirement_value_check.rb | 18 +-- .../person_under_retirement_value_check.rb | 22 +-- .../sales/pages/retirement_value_check.rb | 22 +-- app/models/validations/soft_validations.rb | 6 +- config/forms/2022_2023.json | 144 ++---------------- config/locales/en.yml | 2 +- ...erson_under_retirement_value_check_spec.rb | 40 +---- .../pages/retirement_value_check_spec.rb | 132 +++------------- .../validations/soft_validations_spec.rb | 44 +----- 9 files changed, 67 insertions(+), 363 deletions(-) diff --git a/app/models/form/lettings/pages/lead_tenant_under_retirement_value_check.rb b/app/models/form/lettings/pages/lead_tenant_under_retirement_value_check.rb index 245eb3d48..ab6f5bb01 100644 --- a/app/models/form/lettings/pages/lead_tenant_under_retirement_value_check.rb +++ b/app/models/form/lettings/pages/lead_tenant_under_retirement_value_check.rb @@ -7,23 +7,13 @@ class Form::Lettings::Pages::LeadTenantUnderRetirementValueCheck < ::Form::Page "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_1", - "label" => false, - "i18n_template" => "age", - }, - ], - } - @informative_text = { - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { "key" => "plural_gender_for_person_1", "label" => false, "i18n_template" => "gender" }, - { - "key" => "retirement_age_for_person_1", - "label" => false, + "key" => "age1", + "label" => true, "i18n_template" => "age", }, ], } + @informative_text = {} end def questions @@ -31,6 +21,6 @@ class Form::Lettings::Pages::LeadTenantUnderRetirementValueCheck < ::Form::Page end def interruption_screen_question_ids - %w[ecstat1 sex1 age1] + %w[ecstat1 age1] end end diff --git a/app/models/form/lettings/pages/person_under_retirement_value_check.rb b/app/models/form/lettings/pages/person_under_retirement_value_check.rb index 616aefab0..375eedefb 100644 --- a/app/models/form/lettings/pages/person_under_retirement_value_check.rb +++ b/app/models/form/lettings/pages/person_under_retirement_value_check.rb @@ -7,27 +7,13 @@ class Form::Lettings::Pages::PersonUnderRetirementValueCheck < ::Form::Page "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_#{person_index}", - "label" => false, - "i18n_template" => "age", - }, - ], - } - @informative_text = { - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_#{person_index}", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_#{person_index}", - "label" => false, + "key" => "age#{person_index}", + "label" => true, "i18n_template" => "age", }, ], } + @informative_text = {} @person_index = person_index end @@ -36,6 +22,6 @@ class Form::Lettings::Pages::PersonUnderRetirementValueCheck < ::Form::Page end def interruption_screen_question_ids - ["ecstat#{@person_index}", "sex#{@person_index}", "age#{@person_index}"] + ["ecstat#{@person_index}", "age#{@person_index}"] end end diff --git a/app/models/form/sales/pages/retirement_value_check.rb b/app/models/form/sales/pages/retirement_value_check.rb index 666430de5..9e5dbb87f 100644 --- a/app/models/form/sales/pages/retirement_value_check.rb +++ b/app/models/form/sales/pages/retirement_value_check.rb @@ -11,27 +11,13 @@ class Form::Sales::Pages::RetirementValueCheck < Form::Sales::Pages::Person "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_#{person_index}", - "label" => false, - "i18n_template" => "age", - }, - ], - } - @informative_text = { - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_#{person_index}", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_#{person_index}", - "label" => false, + "key" => "age#{person_index}", + "label" => true, "i18n_template" => "age", }, ], } + @informative_text = {} end def questions @@ -41,6 +27,6 @@ class Form::Sales::Pages::RetirementValueCheck < Form::Sales::Pages::Person end def interruption_screen_question_ids - ["age#{@person_index}", "ecstat#{@person_index}", "sex#{@person_index}"] + ["age#{@person_index}", "ecstat#{@person_index}"] end end diff --git a/app/models/validations/soft_validations.rb b/app/models/validations/soft_validations.rb index 5c571af6a..bfede001a 100644 --- a/app/models/validations/soft_validations.rb +++ b/app/models/validations/soft_validations.rb @@ -124,11 +124,9 @@ private def retired_under_soft_min_age?(person_num) age = public_send("age#{person_num}") economic_status = public_send("ecstat#{person_num}") - gender = public_send("sex#{person_num}") - return unless age && economic_status && gender + return unless age && economic_status - %w[M X].include?(gender) && tenant_is_retired?(economic_status) && age < retirement_age_for_person(person_num) || - gender == "F" && tenant_is_retired?(economic_status) && age < 60 + tenant_is_retired?(economic_status) && age < 60 end def not_retired_over_soft_max_age?(person_num) diff --git a/config/forms/2022_2023.json b/config/forms/2022_2023.json index a900b1e2b..ef719ea73 100644 --- a/config/forms/2022_2023.json +++ b/config/forms/2022_2023.json @@ -1859,21 +1859,7 @@ } ] }, - "informative_text": { - "translation": "soft_validations.retirement.min.hint_text", - "arguments": [ - { - "key": "plural_gender_for_person_1", - "label": false, - "i18n_template": "gender" - }, - { - "key": "retirement_age_for_person_1", - "label": false, - "i18n_template": "age" - } - ] - }, + "informative_text": {}, "questions": { "retirement_value_check": { "check_answer_label": "Retirement confirmation", @@ -1900,7 +1886,7 @@ } } }, - "interruption_screen_question_ids": ["ecstat1", "sex1", "age1"] + "interruption_screen_question_ids": ["ecstat1", "age1"] }, "lead_tenant_over_retirement_value_check": { "depends_on": [ @@ -2403,21 +2389,7 @@ } ] }, - "informative_text": { - "translation": "soft_validations.retirement.min.hint_text", - "arguments": [ - { - "key": "plural_gender_for_person_2", - "label": false, - "i18n_template": "gender" - }, - { - "key": "retirement_age_for_person_2", - "label": false, - "i18n_template": "age" - } - ] - }, + "informative_text": {}, "questions": { "retirement_value_check": { "check_answer_label": "Retirement confirmation", @@ -2444,7 +2416,7 @@ } } }, - "interruption_screen_question_ids": ["ecstat2", "sex2", "age2"] + "interruption_screen_question_ids": ["ecstat2", "age2"] }, "person_2_over_retirement_value_check": { "depends_on": [ @@ -2944,21 +2916,7 @@ } ] }, - "informative_text": { - "translation": "soft_validations.retirement.min.hint_text", - "arguments": [ - { - "key": "plural_gender_for_person_3", - "label": false, - "i18n_template": "gender" - }, - { - "key": "retirement_age_for_person_3", - "label": false, - "i18n_template": "age" - } - ] - }, + "informative_text": {}, "questions": { "retirement_value_check": { "check_answer_label": "Retirement confirmation", @@ -2985,7 +2943,7 @@ } } }, - "interruption_screen_question_ids": ["ecstat3", "sex3", "age3"] + "interruption_screen_question_ids": ["ecstat3", "age3"] }, "person_3_over_retirement_value_check": { "depends_on": [ @@ -3482,21 +3440,7 @@ } ] }, - "informative_text": { - "translation": "soft_validations.retirement.min.hint_text", - "arguments": [ - { - "key": "plural_gender_for_person_4", - "label": false, - "i18n_template": "gender" - }, - { - "key": "retirement_age_for_person_4", - "label": false, - "i18n_template": "age" - } - ] - }, + "informative_text": {}, "questions": { "retirement_value_check": { "check_answer_label": "Retirement confirmation", @@ -3523,7 +3467,7 @@ } } }, - "interruption_screen_question_ids": ["ecstat4", "sex4", "age4"] + "interruption_screen_question_ids": ["ecstat4", "age4"] }, "person_4_over_retirement_value_check": { "depends_on": [ @@ -4017,21 +3961,7 @@ } ] }, - "informative_text": { - "translation": "soft_validations.retirement.min.hint_text", - "arguments": [ - { - "key": "plural_gender_for_person_5", - "label": false, - "i18n_template": "gender" - }, - { - "key": "retirement_age_for_person_5", - "label": false, - "i18n_template": "age" - } - ] - }, + "informative_text": {}, "questions": { "retirement_value_check": { "check_answer_label": "Retirement confirmation", @@ -4058,7 +3988,7 @@ } } }, - "interruption_screen_question_ids": ["ecstat5", "sex5", "age5"] + "interruption_screen_question_ids": ["ecstat5", "age5"] }, "person_5_over_retirement_value_check": { "depends_on": [ @@ -4549,21 +4479,7 @@ } ] }, - "informative_text": { - "translation": "soft_validations.retirement.min.hint_text", - "arguments": [ - { - "key": "plural_gender_for_person_6", - "label": false, - "i18n_template": "gender" - }, - { - "key": "retirement_age_for_person_6", - "label": false, - "i18n_template": "age" - } - ] - }, + "informative_text": {}, "questions": { "retirement_value_check": { "check_answer_label": "Retirement confirmation", @@ -4590,7 +4506,7 @@ } } }, - "interruption_screen_question_ids": ["ecstat6", "sex6", "age6"] + "interruption_screen_question_ids": ["ecstat6", "age6"] }, "person_6_over_retirement_value_check": { "depends_on": [ @@ -5078,21 +4994,7 @@ } ] }, - "informative_text": { - "translation": "soft_validations.retirement.min.hint_text", - "arguments": [ - { - "key": "plural_gender_for_person_7", - "label": false, - "i18n_template": "gender" - }, - { - "key": "retirement_age_for_person_7", - "label": false, - "i18n_template": "age" - } - ] - }, + "informative_text": {}, "questions": { "retirement_value_check": { "check_answer_label": "Retirement confirmation", @@ -5119,7 +5021,7 @@ } } }, - "interruption_screen_question_ids": ["ecstat7", "sex7", "age7"] + "interruption_screen_question_ids": ["ecstat7", "age7"] }, "person_7_over_retirement_value_check": { "depends_on": [ @@ -5604,21 +5506,7 @@ } ] }, - "informative_text": { - "translation": "soft_validations.retirement.min.hint_text", - "arguments": [ - { - "key": "plural_gender_for_person_8", - "label": false, - "i18n_template": "gender" - }, - { - "key": "retirement_age_for_person_8", - "label": false, - "i18n_template": "age" - } - ] - }, + "informative_text": {}, "questions": { "retirement_value_check": { "check_answer_label": "Retirement confirmation", @@ -5645,7 +5533,7 @@ } } }, - "interruption_screen_question_ids": ["ecstat8", "sex8", "age8"] + "interruption_screen_question_ids": ["ecstat8", "age8"] }, "person_8_over_retirement_value_check": { "depends_on": [ diff --git a/config/locales/en.yml b/config/locales/en.yml index 97124dbbd..dad51b10c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -537,7 +537,7 @@ en: hint_text: "This is %{higher_or_lower} than we would expect" retirement: min: - title: "You told us this person is under %{age} and retired" + title: "You told us this person is aged %{age} years and retired." hint_text: "The minimum expected retirement age for %{gender} in England is %{age}." max: title: "You told us this person is %{age} or over and not retired" diff --git a/spec/models/form/lettings/pages/person_under_retirement_value_check_spec.rb b/spec/models/form/lettings/pages/person_under_retirement_value_check_spec.rb index a2a6dd20f..929009ce7 100644 --- a/spec/models/form/lettings/pages/person_under_retirement_value_check_spec.rb +++ b/spec/models/form/lettings/pages/person_under_retirement_value_check_spec.rb @@ -39,8 +39,8 @@ RSpec.describe Form::Lettings::Pages::PersonUnderRetirementValueCheck, type: :mo "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_2", - "label" => false, + "key" => "age2", + "label" => true, "i18n_template" => "age", }, ], @@ -48,21 +48,7 @@ RSpec.describe Form::Lettings::Pages::PersonUnderRetirementValueCheck, type: :mo end it "has the correct informative_text" do - expect(page.informative_text).to eq({ - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_2", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_2", - "label" => false, - "i18n_template" => "age", - }, - ], - }) + expect(page.informative_text).to eq({}) end end @@ -84,8 +70,8 @@ RSpec.describe Form::Lettings::Pages::PersonUnderRetirementValueCheck, type: :mo "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_3", - "label" => false, + "key" => "age3", + "label" => true, "i18n_template" => "age", }, ], @@ -93,21 +79,7 @@ RSpec.describe Form::Lettings::Pages::PersonUnderRetirementValueCheck, type: :mo end it "has the correct informative_text" do - expect(page.informative_text).to eq({ - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_3", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_3", - "label" => false, - "i18n_template" => "age", - }, - ], - }) + expect(page.informative_text).to eq({}) end end end diff --git a/spec/models/form/sales/pages/retirement_value_check_spec.rb b/spec/models/form/sales/pages/retirement_value_check_spec.rb index 365ccbafe..b09760ff5 100644 --- a/spec/models/form/sales/pages/retirement_value_check_spec.rb +++ b/spec/models/form/sales/pages/retirement_value_check_spec.rb @@ -46,8 +46,8 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_1", - "label" => false, + "key" => "age1", + "label" => true, "i18n_template" => "age", }, ], @@ -55,25 +55,11 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do end it "has correct informative_text" do - expect(page.informative_text).to eq({ - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_1", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_1", - "label" => false, - "i18n_template" => "age", - }, - ], - }) + expect(page.informative_text).to eq({}) end it "has correct interruption_screen_question_ids" do - expect(page.interruption_screen_question_ids).to eq(%w[age1 ecstat1 sex1]) + expect(page.interruption_screen_question_ids).to eq(%w[age1 ecstat1]) end end @@ -98,8 +84,8 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_2", - "label" => false, + "key" => "age2", + "label" => true, "i18n_template" => "age", }, ], @@ -107,25 +93,11 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do end it "has correct informative_text" do - expect(page.informative_text).to eq({ - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_2", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_2", - "label" => false, - "i18n_template" => "age", - }, - ], - }) + expect(page.informative_text).to eq({}) end it "has correct interruption_screen_question_ids" do - expect(page.interruption_screen_question_ids).to eq(%w[age2 ecstat2 sex2]) + expect(page.interruption_screen_question_ids).to eq(%w[age2 ecstat2]) end end @@ -150,8 +122,8 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_3", - "label" => false, + "key" => "age3", + "label" => true, "i18n_template" => "age", }, ], @@ -159,25 +131,11 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do end it "has correct informative_text" do - expect(page.informative_text).to eq({ - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_3", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_3", - "label" => false, - "i18n_template" => "age", - }, - ], - }) + expect(page.informative_text).to eq({}) end it "has correct interruption_screen_question_ids" do - expect(page.interruption_screen_question_ids).to eq(%w[age3 ecstat3 sex3]) + expect(page.interruption_screen_question_ids).to eq(%w[age3 ecstat3]) end end @@ -202,8 +160,8 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_4", - "label" => false, + "key" => "age4", + "label" => true, "i18n_template" => "age", }, ], @@ -211,25 +169,11 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do end it "has correct informative_text" do - expect(page.informative_text).to eq({ - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_4", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_4", - "label" => false, - "i18n_template" => "age", - }, - ], - }) + expect(page.informative_text).to eq({}) end it "has correct interruption_screen_question_ids" do - expect(page.interruption_screen_question_ids).to eq(%w[age4 ecstat4 sex4]) + expect(page.interruption_screen_question_ids).to eq(%w[age4 ecstat4]) end end @@ -254,8 +198,8 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_5", - "label" => false, + "key" => "age5", + "label" => true, "i18n_template" => "age", }, ], @@ -263,25 +207,11 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do end it "has correct informative_text" do - expect(page.informative_text).to eq({ - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_5", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_5", - "label" => false, - "i18n_template" => "age", - }, - ], - }) + expect(page.informative_text).to eq({}) end it "has correct interruption_screen_question_ids" do - expect(page.interruption_screen_question_ids).to eq(%w[age5 ecstat5 sex5]) + expect(page.interruption_screen_question_ids).to eq(%w[age5 ecstat5]) end end @@ -306,8 +236,8 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do "translation" => "soft_validations.retirement.min.title", "arguments" => [ { - "key" => "retirement_age_for_person_6", - "label" => false, + "key" => "age6", + "label" => true, "i18n_template" => "age", }, ], @@ -315,25 +245,11 @@ RSpec.describe Form::Sales::Pages::RetirementValueCheck, type: :model do end it "has correct informative_text" do - expect(page.informative_text).to eq({ - "translation" => "soft_validations.retirement.min.hint_text", - "arguments" => [ - { - "key" => "plural_gender_for_person_6", - "label" => false, - "i18n_template" => "gender", - }, - { - "key" => "retirement_age_for_person_6", - "label" => false, - "i18n_template" => "age", - }, - ], - }) + expect(page.informative_text).to eq({}) end it "has correct interruption_screen_question_ids" do - expect(page.interruption_screen_question_ids).to eq(%w[age6 ecstat6 sex6]) + expect(page.interruption_screen_question_ids).to eq(%w[age6 ecstat6]) end end end diff --git a/spec/models/validations/soft_validations_spec.rb b/spec/models/validations/soft_validations_spec.rb index b51a084f5..acffc9cac 100644 --- a/spec/models/validations/soft_validations_spec.rb +++ b/spec/models/validations/soft_validations_spec.rb @@ -84,25 +84,9 @@ RSpec.describe Validations::SoftValidations do describe "retirement soft validations" do context "when the tenant is retired but under the expected retirement age" do - context "when the tenant is female" do - it "shows the interruption screen" do - record.update!(age1: 43, sex1: "F", ecstat1: 5) - expect(record.person_1_retired_under_soft_min_age?).to be true - end - end - - context "when the tenant is male" do - it "shows the interruption screen" do - record.update!(age1: 43, sex1: "M", ecstat1: 5) - expect(record.person_1_retired_under_soft_min_age?).to be true - end - end - - context "when the tenant is non-binary" do - it "shows the interruption screen" do - record.update!(age1: 43, sex1: "X", ecstat1: 5) - expect(record.person_1_retired_under_soft_min_age?).to be true - end + it "shows the interruption screen" do + record.update!(age1: 43, ecstat1: 5) + expect(record.person_1_retired_under_soft_min_age?).to be true end end @@ -130,25 +114,9 @@ RSpec.describe Validations::SoftValidations do end context "when the tenant prefers not to say what their economic status is but is under the expected retirement age" do - context "when the tenant is female" do - it "does not show the interruption screen" do - record.update!(age1: 43, sex1: "F", ecstat1: 10) - expect(record.person_1_retired_under_soft_min_age?).to be false - end - end - - context "when the tenant is male" do - it "does not show the interruption screen" do - record.update!(age1: 43, sex1: "M", ecstat1: 10) - expect(record.person_1_retired_under_soft_min_age?).to be false - end - end - - context "when the tenant is non-binary" do - it "does not show the interruption screen" do - record.update!(age1: 43, sex1: "X", ecstat1: 10) - expect(record.person_1_retired_under_soft_min_age?).to be false - end + it "does not show the interruption screen" do + record.update!(age1: 43, ecstat1: 10) + expect(record.person_1_retired_under_soft_min_age?).to be false end end