From ace6a599b0cfd48b32c43f0edd56da00819070bc Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:53:05 +0100 Subject: [PATCH 1/4] CLDC-3664 Extract income and benefits copy (#2709) * Refactor sales household pages and questions * Refactor sales income and benefits soft validations * Update subsection test * Fix income copy keys * Update subsection test * Add missing question to translations * Fix typo * Add prevshared for 2024 --- app/models/form/sales/pages/buyer1_income.rb | 1 + .../pages/buyer1_income_max_value_check.rb | 3 +- .../pages/buyer1_income_min_value_check.rb | 5 +- app/models/form/sales/pages/buyer2_income.rb | 1 + .../pages/buyer2_income_max_value_check.rb | 3 +- .../pages/buyer2_income_min_value_check.rb | 5 +- .../pages/combined_income_max_value_check.rb | 3 +- .../form/sales/pages/deposit_value_check.rb | 5 +- .../form/sales/pages/housing_benefits.rb | 1 + .../form/sales/pages/mortgage_value_check.rb | 6 +- .../form/sales/pages/previous_ownership.rb | 1 + app/models/form/sales/pages/savings.rb | 1 + .../form/sales/pages/savings_value_check.rb | 5 +- .../form/sales/questions/buyer1_income.rb | 4 +- .../sales/questions/buyer1_income_known.rb | 3 +- .../questions/buyer1_income_value_check.rb | 3 +- .../form/sales/questions/buyer1_mortgage.rb | 2 - .../form/sales/questions/buyer2_income.rb | 4 +- .../sales/questions/buyer2_income_known.rb | 3 +- .../questions/buyer2_income_value_check.rb | 3 +- .../form/sales/questions/buyer2_mortgage.rb | 2 - .../questions/combined_income_value_check.rb | 3 +- .../sales/questions/deposit_value_check.rb | 3 +- .../form/sales/questions/housing_benefits.rb | 3 +- .../sales/questions/mortgage_value_check.rb | 3 +- app/models/form/sales/questions/prevown.rb | 3 +- app/models/form/sales/questions/prevshared.rb | 3 - app/models/form/sales/questions/savings.rb | 3 +- app/models/form/sales/questions/savings_nk.rb | 3 +- .../sales/questions/savings_value_check.rb | 3 +- config/locales/en.yml | 26 ------ .../sales/income_benefits_and_savings.en.yml | 90 +++++++++++++++++++ .../forms/2023/sales/soft_validations.en.yml | 60 +++++++++++++ .../sales/income_benefits_and_savings.en.yml | 90 +++++++++++++++++++ .../forms/2024/sales/soft_validations.en.yml | 60 +++++++++++++ .../buyer1_income_max_value_check_spec.rb | 3 +- .../buyer1_income_min_value_check_spec.rb | 3 +- .../buyer2_income_max_value_check_spec.rb | 3 +- .../buyer2_income_min_value_check_spec.rb | 3 +- .../combined_income_max_value_check_spec.rb | 3 +- .../sales/pages/deposit_value_check_spec.rb | 3 +- .../sales/pages/mortgage_value_check_spec.rb | 3 +- .../sales/pages/savings_value_check_spec.rb | 3 +- .../discounted_ownership_scheme_spec.rb | 3 +- .../shared_ownership_scheme_spec.rb | 2 +- 45 files changed, 359 insertions(+), 87 deletions(-) create mode 100644 config/locales/forms/2023/sales/income_benefits_and_savings.en.yml create mode 100644 config/locales/forms/2023/sales/soft_validations.en.yml create mode 100644 config/locales/forms/2024/sales/income_benefits_and_savings.en.yml create mode 100644 config/locales/forms/2024/sales/soft_validations.en.yml diff --git a/app/models/form/sales/pages/buyer1_income.rb b/app/models/form/sales/pages/buyer1_income.rb index 943296d2b..657cf8807 100644 --- a/app/models/form/sales/pages/buyer1_income.rb +++ b/app/models/form/sales/pages/buyer1_income.rb @@ -2,6 +2,7 @@ class Form::Sales::Pages::Buyer1Income < ::Form::Page def initialize(id, hsh, subsection) super @id = "buyer_1_income" + @copy_key = "sales.income_benefits_and_savings.buyer_1_income" end def questions diff --git a/app/models/form/sales/pages/buyer1_income_max_value_check.rb b/app/models/form/sales/pages/buyer1_income_max_value_check.rb index b093baa2a..55599ff26 100644 --- a/app/models/form/sales/pages/buyer1_income_max_value_check.rb +++ b/app/models/form/sales/pages/buyer1_income_max_value_check.rb @@ -6,8 +6,9 @@ class Form::Sales::Pages::Buyer1IncomeMaxValueCheck < ::Form::Page "income1_over_soft_max?" => true, }, ] + @copy_key = "sales.soft_validations.income1_value_check.max" @title_text = { - "translation" => "soft_validations.income.over_soft_max_for_la_buyer_1", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", "arguments" => [ { "key" => "field_formatted_as_currency", diff --git a/app/models/form/sales/pages/buyer1_income_min_value_check.rb b/app/models/form/sales/pages/buyer1_income_min_value_check.rb index 2feb4f887..9fc85bb76 100644 --- a/app/models/form/sales/pages/buyer1_income_min_value_check.rb +++ b/app/models/form/sales/pages/buyer1_income_min_value_check.rb @@ -6,8 +6,9 @@ class Form::Sales::Pages::Buyer1IncomeMinValueCheck < ::Form::Page "income1_under_soft_min?" => true, }, ] + @copy_key = "sales.soft_validations.income1_value_check.min" @title_text = { - "translation" => "soft_validations.income.under_soft_min_for_economic_status.title_text", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", "arguments" => [ { "key" => "field_formatted_as_currency", @@ -22,7 +23,7 @@ class Form::Sales::Pages::Buyer1IncomeMinValueCheck < ::Form::Page ], } @informative_text = { - "translation" => "soft_validations.income.under_soft_min_for_economic_status.hint_text", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.informative_text", "arguments" => [], } end diff --git a/app/models/form/sales/pages/buyer2_income.rb b/app/models/form/sales/pages/buyer2_income.rb index f865418a7..fd35d52cc 100644 --- a/app/models/form/sales/pages/buyer2_income.rb +++ b/app/models/form/sales/pages/buyer2_income.rb @@ -2,6 +2,7 @@ class Form::Sales::Pages::Buyer2Income < ::Form::Page def initialize(id, hsh, subsection) super @id = "buyer_2_income" + @copy_key = "sales.income_benefits_and_savings.buyer_2_income" @depends_on = [{ "joint_purchase?" => true, }] diff --git a/app/models/form/sales/pages/buyer2_income_max_value_check.rb b/app/models/form/sales/pages/buyer2_income_max_value_check.rb index 894da8799..deece885e 100644 --- a/app/models/form/sales/pages/buyer2_income_max_value_check.rb +++ b/app/models/form/sales/pages/buyer2_income_max_value_check.rb @@ -6,8 +6,9 @@ class Form::Sales::Pages::Buyer2IncomeMaxValueCheck < ::Form::Page "income2_over_soft_max?" => true, }, ] + @copy_key = "sales.soft_validations.income2_value_check.max" @title_text = { - "translation" => "soft_validations.income.over_soft_max_for_la_buyer_2", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", "arguments" => [ { "key" => "field_formatted_as_currency", diff --git a/app/models/form/sales/pages/buyer2_income_min_value_check.rb b/app/models/form/sales/pages/buyer2_income_min_value_check.rb index adef17843..a7b68cd10 100644 --- a/app/models/form/sales/pages/buyer2_income_min_value_check.rb +++ b/app/models/form/sales/pages/buyer2_income_min_value_check.rb @@ -6,8 +6,9 @@ class Form::Sales::Pages::Buyer2IncomeMinValueCheck < ::Form::Page "income2_under_soft_min?" => true, }, ] + @copy_key = "sales.soft_validations.income2_value_check.min" @title_text = { - "translation" => "soft_validations.income.under_soft_min_for_economic_status.title_text", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", "arguments" => [ { "key" => "field_formatted_as_currency", @@ -22,7 +23,7 @@ class Form::Sales::Pages::Buyer2IncomeMinValueCheck < ::Form::Page ], } @informative_text = { - "translation" => "soft_validations.income.under_soft_min_for_economic_status.hint_text", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.informative_text", "arguments" => [], } end diff --git a/app/models/form/sales/pages/combined_income_max_value_check.rb b/app/models/form/sales/pages/combined_income_max_value_check.rb index 82f2e4469..1cd1fd851 100644 --- a/app/models/form/sales/pages/combined_income_max_value_check.rb +++ b/app/models/form/sales/pages/combined_income_max_value_check.rb @@ -6,8 +6,9 @@ class Form::Sales::Pages::CombinedIncomeMaxValueCheck < ::Form::Page "combined_income_over_soft_max?" => true, }, ] + @copy_key = "sales.soft_validations.combined_income_value_check" @title_text = { - "translation" => "soft_validations.income.over_soft_max_for_la_combined", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", "arguments" => [ { "key" => "field_formatted_as_currency", diff --git a/app/models/form/sales/pages/deposit_value_check.rb b/app/models/form/sales/pages/deposit_value_check.rb index cca25a43b..cbec4b031 100644 --- a/app/models/form/sales/pages/deposit_value_check.rb +++ b/app/models/form/sales/pages/deposit_value_check.rb @@ -1,12 +1,13 @@ class Form::Sales::Pages::DepositValueCheck < ::Form::Page def initialize(id, hsh, subsection, joint_purchase:) super(id, hsh, subsection) + @copy_key = "sales.soft_validations.deposit_value_check.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}" @informative_text = { - "translation" => "soft_validations.deposit.hint_text", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.informative_text", "arguments" => [], } @title_text = { - "translation" => "soft_validations.deposit.title_text.#{joint_purchase ? 'two' : 'one'}", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", "arguments" => [ { "key" => "field_formatted_as_currency", diff --git a/app/models/form/sales/pages/housing_benefits.rb b/app/models/form/sales/pages/housing_benefits.rb index 90d721ad8..c40dff5f4 100644 --- a/app/models/form/sales/pages/housing_benefits.rb +++ b/app/models/form/sales/pages/housing_benefits.rb @@ -2,6 +2,7 @@ class Form::Sales::Pages::HousingBenefits < ::Form::Page def initialize(id, hsh, subsection, joint_purchase:) super(id, hsh, subsection) @joint_purchase = joint_purchase + @copy_key = "sales.income_benefits_and_savings.housing_benefits.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}" end def questions diff --git a/app/models/form/sales/pages/mortgage_value_check.rb b/app/models/form/sales/pages/mortgage_value_check.rb index 949cea27f..bfab9a014 100644 --- a/app/models/form/sales/pages/mortgage_value_check.rb +++ b/app/models/form/sales/pages/mortgage_value_check.rb @@ -2,10 +2,10 @@ class Form::Sales::Pages::MortgageValueCheck < ::Form::Page def initialize(id, hsh, subsection, person_index = nil) super(id, hsh, subsection) @depends_on = depends_on - @informative_text = {} @person_index = person_index + @copy_key = "sales.soft_validations.mortgage_value_check" @title_text = { - "translation" => "soft_validations.mortgage.title_text", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", "arguments" => [ { "key" => "field_formatted_as_currency", @@ -15,7 +15,7 @@ class Form::Sales::Pages::MortgageValueCheck < ::Form::Page ], } @informative_text = { - "translation" => "soft_validations.mortgage.hint_text", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.informative_text", "arguments" => [], } end diff --git a/app/models/form/sales/pages/previous_ownership.rb b/app/models/form/sales/pages/previous_ownership.rb index 50711baf7..ac7a17787 100644 --- a/app/models/form/sales/pages/previous_ownership.rb +++ b/app/models/form/sales/pages/previous_ownership.rb @@ -3,6 +3,7 @@ class Form::Sales::Pages::PreviousOwnership < ::Form::Page super(id, hsh, subsection) @joint_purchase = joint_purchase @depends_on = [{ "joint_purchase?" => @joint_purchase }] + @copy_key = "sales.income_benefits_and_savings.prevown.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}" end def questions diff --git a/app/models/form/sales/pages/savings.rb b/app/models/form/sales/pages/savings.rb index 7a13dbe34..64a2b1ecf 100644 --- a/app/models/form/sales/pages/savings.rb +++ b/app/models/form/sales/pages/savings.rb @@ -2,6 +2,7 @@ class Form::Sales::Pages::Savings < ::Form::Page def initialize(id, hsh, subsection, joint_purchase:) super(id, hsh, subsection) @joint_purchase = joint_purchase + @copy_key = "sales.income_benefits_and_savings.savings.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}" end def questions diff --git a/app/models/form/sales/pages/savings_value_check.rb b/app/models/form/sales/pages/savings_value_check.rb index bcb95abc9..00be6decd 100644 --- a/app/models/form/sales/pages/savings_value_check.rb +++ b/app/models/form/sales/pages/savings_value_check.rb @@ -1,8 +1,9 @@ class Form::Sales::Pages::SavingsValueCheck < ::Form::Page def initialize(id, hsh, subsection, joint_purchase:) super(id, hsh, subsection) + @copy_key = "sales.soft_validations.savings_value_check.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}" @title_text = { - "translation" => "soft_validations.savings.title_text.#{joint_purchase ? 'two' : 'one'}", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", "arguments" => [ { "key" => "field_formatted_as_currency", @@ -12,7 +13,7 @@ class Form::Sales::Pages::SavingsValueCheck < ::Form::Page ], } @informative_text = { - "translation" => "soft_validations.savings.hint_text", + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.informative_text", "arguments" => [], } @joint_purchase = joint_purchase diff --git a/app/models/form/sales/questions/buyer1_income.rb b/app/models/form/sales/questions/buyer1_income.rb index 106f040f8..3f1159a8f 100644 --- a/app/models/form/sales/questions/buyer1_income.rb +++ b/app/models/form/sales/questions/buyer1_income.rb @@ -2,9 +2,7 @@ class Form::Sales::Questions::Buyer1Income < ::Form::Question def initialize(id, hsh, page) super @id = "income1" - @check_answer_label = "Buyer 1’s gross annual income" - @header = "Buyer 1’s gross annual income" - @hint_text = "Provide the gross annual income (i.e. salary before tax) plus the annual amount of benefits, Universal Credit or pensions, and income from investments." + @copy_key = "sales.income_benefits_and_savings.buyer_1_income.income1" @type = "numeric" @min = 0 @max = 999_999 diff --git a/app/models/form/sales/questions/buyer1_income_known.rb b/app/models/form/sales/questions/buyer1_income_known.rb index b00b45475..46c1f4caa 100644 --- a/app/models/form/sales/questions/buyer1_income_known.rb +++ b/app/models/form/sales/questions/buyer1_income_known.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::Buyer1IncomeKnown < ::Form::Question def initialize(id, hsh, page) super @id = "income1nk" - @check_answer_label = "Buyer 1’s gross annual income known?" - @header = "Do you know buyer 1’s annual income?" + @copy_key = "sales.income_benefits_and_savings.buyer_1_income.income1nk" @type = "radio" @answer_options = ANSWER_OPTIONS @conditional_for = { diff --git a/app/models/form/sales/questions/buyer1_income_value_check.rb b/app/models/form/sales/questions/buyer1_income_value_check.rb index 63e3b6478..410bd53d5 100644 --- a/app/models/form/sales/questions/buyer1_income_value_check.rb +++ b/app/models/form/sales/questions/buyer1_income_value_check.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::Buyer1IncomeValueCheck < ::Form::Question def initialize(id, hsh, page, check_answers_card_number:) super(id, hsh, page) @id = "income1_value_check" - @check_answer_label = "Buyer 1 income confirmation" - @header = "Are you sure this is correct?" + @copy_key = "sales.soft_validations.income1_value_check" @type = "interruption_screen" @answer_options = { "0" => { "value" => "Yes" }, diff --git a/app/models/form/sales/questions/buyer1_mortgage.rb b/app/models/form/sales/questions/buyer1_mortgage.rb index eaa2a07fa..d2a94f6b5 100644 --- a/app/models/form/sales/questions/buyer1_mortgage.rb +++ b/app/models/form/sales/questions/buyer1_mortgage.rb @@ -2,8 +2,6 @@ class Form::Sales::Questions::Buyer1Mortgage < ::Form::Question def initialize(id, hsh, page) super @id = "inc1mort" - @check_answer_label = "Buyer 1’s income used for mortgage application" - @header = "Was buyer 1’s income used for a mortgage application?" @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 1 diff --git a/app/models/form/sales/questions/buyer2_income.rb b/app/models/form/sales/questions/buyer2_income.rb index cff25b344..39777f870 100644 --- a/app/models/form/sales/questions/buyer2_income.rb +++ b/app/models/form/sales/questions/buyer2_income.rb @@ -2,10 +2,8 @@ class Form::Sales::Questions::Buyer2Income < ::Form::Question def initialize(id, hsh, page) super @id = "income2" - @check_answer_label = "Buyer 2’s gross annual income" - @header = "Buyer 2’s gross annual income" + @copy_key = "sales.income_benefits_and_savings.buyer_2_income.income2" @type = "numeric" - @hint_text = "Provide the gross annual income (i.e. salary before tax) plus the annual amount of benefits, Universal Credit or pensions, and income from investments." @min = 0 @max = 999_999 @step = 1 diff --git a/app/models/form/sales/questions/buyer2_income_known.rb b/app/models/form/sales/questions/buyer2_income_known.rb index b3cc5f33a..0b125f2af 100644 --- a/app/models/form/sales/questions/buyer2_income_known.rb +++ b/app/models/form/sales/questions/buyer2_income_known.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::Buyer2IncomeKnown < ::Form::Question def initialize(id, hsh, page) super @id = "income2nk" - @check_answer_label = "Buyer 2’s gross annual income known?" - @header = "Do you know buyer 2’s annual income?" + @copy_key = "sales.income_benefits_and_savings.buyer_2_income.income2" @type = "radio" @answer_options = ANSWER_OPTIONS @conditional_for = { diff --git a/app/models/form/sales/questions/buyer2_income_value_check.rb b/app/models/form/sales/questions/buyer2_income_value_check.rb index 37b6cb380..6b0bab5c2 100644 --- a/app/models/form/sales/questions/buyer2_income_value_check.rb +++ b/app/models/form/sales/questions/buyer2_income_value_check.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::Buyer2IncomeValueCheck < ::Form::Question def initialize(id, hsh, page, check_answers_card_number:) super(id, hsh, page) @id = "income2_value_check" - @check_answer_label = "Buyer 2 income confirmation" - @header = "Are you sure this is correct?" + @copy_key = "sales.soft_validations.income2_value_check" @type = "interruption_screen" @answer_options = { "0" => { "value" => "Yes" }, diff --git a/app/models/form/sales/questions/buyer2_mortgage.rb b/app/models/form/sales/questions/buyer2_mortgage.rb index 42b8cda06..415d5b714 100644 --- a/app/models/form/sales/questions/buyer2_mortgage.rb +++ b/app/models/form/sales/questions/buyer2_mortgage.rb @@ -2,8 +2,6 @@ class Form::Sales::Questions::Buyer2Mortgage < ::Form::Question def initialize(id, hsh, page) super @id = "inc2mort" - @check_answer_label = "Buyer 2’s income used for mortgage application" - @header = "Was buyer 2’s income used for a mortgage application?" @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 2 diff --git a/app/models/form/sales/questions/combined_income_value_check.rb b/app/models/form/sales/questions/combined_income_value_check.rb index 47cafeaa2..c2688ffe5 100644 --- a/app/models/form/sales/questions/combined_income_value_check.rb +++ b/app/models/form/sales/questions/combined_income_value_check.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::CombinedIncomeValueCheck < ::Form::Question def initialize(id, hsh, page, check_answers_card_number:) super(id, hsh, page) @id = "combined_income_value_check" - @check_answer_label = "Combined income confirmation" - @header = "Are you sure this is correct?" + @copy_key = "sales.soft_validations.combined_income_value_check" @type = "interruption_screen" @answer_options = { "0" => { "value" => "Yes" }, diff --git a/app/models/form/sales/questions/deposit_value_check.rb b/app/models/form/sales/questions/deposit_value_check.rb index f3cd27e3a..f8d403d9c 100644 --- a/app/models/form/sales/questions/deposit_value_check.rb +++ b/app/models/form/sales/questions/deposit_value_check.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::DepositValueCheck < ::Form::Question def initialize(id, hsh, page) super @id = "deposit_value_check" - @check_answer_label = "Deposit confirmation" - @header = "Are you sure that the deposit is this much higher than the buyer's savings?" + @copy_key = "sales.soft_validations.deposit_value_check" @type = "interruption_screen" @answer_options = { "0" => { "value" => "Yes" }, diff --git a/app/models/form/sales/questions/housing_benefits.rb b/app/models/form/sales/questions/housing_benefits.rb index 70bc4ba2e..d7a670f2e 100644 --- a/app/models/form/sales/questions/housing_benefits.rb +++ b/app/models/form/sales/questions/housing_benefits.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::HousingBenefits < ::Form::Question def initialize(id, hsh, page, joint_purchase:) super(id, hsh, page) @id = "hb" - @check_answer_label = "Housing-related benefits #{joint_purchase ? 'buyers' : 'buyer'} received before buying this property" - @header = "#{joint_purchase ? 'Were the buyers' : 'Was the buyer'} receiving any of these housing-related benefits immediately before buying this property?" + @copy_key = "sales.income_benefits_and_savings.housing_benefits.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}" @type = "radio" @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] diff --git a/app/models/form/sales/questions/mortgage_value_check.rb b/app/models/form/sales/questions/mortgage_value_check.rb index 39079d40e..99307ab38 100644 --- a/app/models/form/sales/questions/mortgage_value_check.rb +++ b/app/models/form/sales/questions/mortgage_value_check.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::MortgageValueCheck < ::Form::Question def initialize(id, hsh, page) super @id = "mortgage_value_check" - @check_answer_label = "Mortgage confirmation" - @header = "Are you sure that the mortgage is more than 5 times the income used for the mortgage application?" + @copy_key = "sales.soft_validations.mortgage_value_check" @type = "interruption_screen" @answer_options = { "0" => { "value" => "Yes" }, diff --git a/app/models/form/sales/questions/prevown.rb b/app/models/form/sales/questions/prevown.rb index f913f950b..ecd6c9071 100644 --- a/app/models/form/sales/questions/prevown.rb +++ b/app/models/form/sales/questions/prevown.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::Prevown < ::Form::Question def initialize(id, hsh, page, joint_purchase:) super(id, hsh, page) @id = "prevown" - @check_answer_label = I18n.t("check_answer_labels.prevown", count: joint_purchase ? 2 : 1) - @header = I18n.t("questions.prevown", count: joint_purchase ? 2 : 1) + @copy_key = "sales.income_benefits_and_savings.prevown.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}" @type = "radio" @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] diff --git a/app/models/form/sales/questions/prevshared.rb b/app/models/form/sales/questions/prevshared.rb index 018f57faa..f4ced14b9 100644 --- a/app/models/form/sales/questions/prevshared.rb +++ b/app/models/form/sales/questions/prevshared.rb @@ -2,11 +2,8 @@ class Form::Sales::Questions::Prevshared < ::Form::Question def initialize(id, hsh, page) super @id = "prevshared" - @check_answer_label = "Previous property shared ownership?" - @header = "Was the previous property under shared ownership?" @type = "radio" @answer_options = ANSWER_OPTIONS - @hint_text = "For any buyer" @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/sales/questions/savings.rb b/app/models/form/sales/questions/savings.rb index 82b8e0f87..bb1f939a5 100644 --- a/app/models/form/sales/questions/savings.rb +++ b/app/models/form/sales/questions/savings.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::Savings < ::Form::Question def initialize(id, hsh, page, joint_purchase:) super(id, hsh, page) @id = "savings" - @check_answer_label = "#{joint_purchase ? 'Buyers’' : 'Buyer’s'} total savings before any deposit paid" - @header = "Enter their total savings to the nearest £10" + @copy_key = "sales.income_benefits_and_savings.savings.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}.savings" @type = "numeric" @width = 5 @prefix = "£" diff --git a/app/models/form/sales/questions/savings_nk.rb b/app/models/form/sales/questions/savings_nk.rb index 931ba835a..3c7e115f4 100644 --- a/app/models/form/sales/questions/savings_nk.rb +++ b/app/models/form/sales/questions/savings_nk.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::SavingsNk < ::Form::Question def initialize(id, hsh, page, joint_purchase:) super(id, hsh, page) @id = "savingsnk" - @check_answer_label = "#{joint_purchase ? 'Buyers’' : 'Buyer’s'} total savings known?" - @header = "Do you know how much the #{joint_purchase ? 'buyers' : 'buyer'} had in savings before they paid any deposit for the property?" + @copy_key = "sales.income_benefits_and_savings.savings.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}.savingsnk" @type = "radio" @answer_options = ANSWER_OPTIONS @conditional_for = { diff --git a/app/models/form/sales/questions/savings_value_check.rb b/app/models/form/sales/questions/savings_value_check.rb index bcd16827a..f547969bf 100644 --- a/app/models/form/sales/questions/savings_value_check.rb +++ b/app/models/form/sales/questions/savings_value_check.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::SavingsValueCheck < ::Form::Question def initialize(id, hsh, page) super @id = "savings_value_check" - @check_answer_label = "Savings confirmation" - @header = "Are you sure the savings are higher than £100,000?" + @copy_key = "sales.soft_validations.savings_value_check" @type = "interruption_screen" @answer_options = { "0" => { "value" => "Yes" }, diff --git a/config/locales/en.yml b/config/locales/en.yml index 85be0e677..b39183591 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -703,13 +703,6 @@ en: message: "Net income is lower than expected based on the household’s working situation. Are you sure this is correct?" in_soft_max_range: message: "Net income is higher than expected based on the household’s working situation. Are you sure this is correct?" - income: - under_soft_min_for_economic_status: - title_text: "You told us income was %{income}." - hint_text: "This is less than we would expect for someone in this working situation." - over_soft_max_for_la_buyer_1: "You told us the income of buyer 1 is %{income}. This seems high. Are you sure this is correct?" - over_soft_max_for_la_buyer_2: "You told us the income of buyer 2 is %{income}. This seems high. Are you sure this is correct?" - over_soft_max_for_la_combined: "You told us the combined income of this household is %{combined_income}. This seems high. Are you sure this is correct?" rent: outside_range_title: "You told us the rent is %{brent}." informative_text: "This is %{higher_or_lower} than we would expect." @@ -772,24 +765,11 @@ Make sure these answers are correct." percentage_discount_value: title_text: "You told us that the percentage discount is %{discount}." hint_text: "This is higher than we would expect." - savings: - title_text: - one: "You told us the buyer’s savings were %{savings}." - two: "You told us the buyers’ savings were %{savings}." - hint_text: "This is higher than we would expect." - deposit: - title_text: - one: "You told us the buyer’s deposit was %{deposit} and their savings were %{savings}." - two: "You told us the buyers’ deposit was %{deposit} and their savings were %{savings}." - hint_text: "The deposit amount is higher than we would expect for the amount of savings they have." grant: title_text: "You told us that the grant amount is %{grant}." hint_text: "Loans, grants and subsidies are usually between £9,000 and £16,000." wheelchair: title_text: "You told us that someone in the household uses a wheelchair." - mortgage: - title_text: "You told us that the mortgage amount is %{mortgage}." - hint_text: "This is more than 5 times the income, which is higher than we would expect." referral: title_text: "Are you sure?" hint_text: "This is a general needs log, and this referral type is for supported housing." @@ -859,9 +839,6 @@ Make sure these answers are correct." soctenant: one: "Was the buyer a private registered provider, housing association or local authority tenant immediately before this sale?" other: "Were any of the buyers private registered providers, housing association or local authority tenants immediately before this sale?" - prevown: - one: "Has the buyer previously owned a property?" - other: "Have any of the buyers previously owned a property?" stairowned: one: "What percentage of the property does the buyer now own in total?" other: "What percentage of the property do the buyers now own in total?" @@ -884,9 +861,6 @@ Make sure these answers are correct." soctenant: one: "Buyer was a registered provider, housing association or local authority tenant immediately before this sale?" other: "Any buyers were registered providers, housing association or local authority tenants immediately before this sale?" - prevown: - one: "Buyer previously owned a property." - other: "Buyers previously owned a property." stairowned: one: "Percentage the buyer now owns in total." other: "Percentage the buyers now own in total." diff --git a/config/locales/forms/2023/sales/income_benefits_and_savings.en.yml b/config/locales/forms/2023/sales/income_benefits_and_savings.en.yml new file mode 100644 index 000000000..49262d7a1 --- /dev/null +++ b/config/locales/forms/2023/sales/income_benefits_and_savings.en.yml @@ -0,0 +1,90 @@ +en: + forms: + 2023: + sales: + income_benefits_and_savings: + buyer_1_income: + page_header: "" + income1nk: + check_answer_label: "Buyer 1’s gross annual income known?" + hint_text: "" + question_text: "Do you know buyer 1’s annual income?" + income1: + check_answer_label: "Buyer 1’s gross annual income" + hint_text: "Provide the gross annual income (i.e. salary before tax) plus the annual amount of benefits, Universal Credit or pensions, and income from investments." + question_text: "Buyer 1’s gross annual income" + + inc1mort: + page_header: "" + check_answer_label: "Buyer 1’s income used for mortgage application" + hint_text: "" + question_text: "Was buyer 1’s income used for a mortgage application?" + + buyer_2_income: + page_header: "" + income2nk: + check_answer_label: "Buyer 2’s gross annual income known?" + hint_text: "" + question_text: "Do you know buyer 2’s annual income?" + income2: + check_answer_label: "Buyer 2’s gross annual income" + hint_text: "Provide the gross annual income (i.e. salary before tax) plus the annual amount of benefits, Universal Credit or pensions, and income from investments." + question_text: "Buyer 2’s gross annual income" + + inc2mort: + page_header: "" + check_answer_label: "Buyer 2’s income used for mortgage application" + hint_text: "" + question_text: "Was buyer 2’s income used for a mortgage application?" + + housing_benefits: + joint_purchase: + page_header: "" + check_answer_label: "Housing-related benefits buyers received before buying this property" + hint_text: "" + question_text: "Were the buyers receiving any of these housing-related benefits immediately before buying this property?" + not_joint_purchase: + page_header: "" + check_answer_label: "Housing-related benefits buyer received before buying this property" + hint_text: "" + question_text: "Was the buyer receiving any of these housing-related benefits immediately before buying this property?" + + savings: + joint_purchase: + page_header: "" + savingsnk: + check_answer_label: "Buyers’ total savings known?" + hint_text: "" + question_text: "Do you know how much the 'buyers' had in savings before they paid any deposit for the property?" + savings: + check_answer_label: "Buyers’ total savings before any deposit paid" + hint_text: "Include any savings, investments, ISAs, premium bonds, shares, or money held in a bank or building society account." + question_text: "Enter their total savings to the nearest £10" + not_joint_purchase: + page_header: "" + savingsnk: + check_answer_label: "Buyer’s total savings known?" + hint_text: "" + question_text: "Do you know how much the buyer had in savings before they paid any deposit for the property?" + savings: + check_answer_label: "Buyer’s total savings before any deposit paid" + hint_text: "Include any savings, investments, ISAs, premium bonds, shares, or money held in a bank or building society account." + question_text: "Enter their total savings to the nearest £10" + + prevown: + joint_purchase: + page_header: "" + check_answer_label: "Buyers previously owned a property." + hint_text: "" + question_text: "Have any of the buyers previously owned a property?" + not_joint_purchase: + page_header: "" + check_answer_label: "Buyer previously owned a property." + hint_text: "" + question_text: "Has the buyer previously owned a property?" + + prevshared: + page_header: "" + check_answer_label: "Previous property shared ownership?" + hint_text: "For any buyer" + question_text: "Was the previous property under shared ownership?" \ No newline at end of file diff --git a/config/locales/forms/2023/sales/soft_validations.en.yml b/config/locales/forms/2023/sales/soft_validations.en.yml new file mode 100644 index 000000000..de5138208 --- /dev/null +++ b/config/locales/forms/2023/sales/soft_validations.en.yml @@ -0,0 +1,60 @@ +en: + forms: + 2023: + sales: + soft_validations: + income1_value_check: + page_header: "" + check_answer_label: "Buyer 1 income confirmation" + hint_text: "" + question_text: "Are you sure this is correct?" + min: + title_text: "You told us income was %{income}." + informative_text: "This is less than we would expect for someone in this working situation." + max: + title_text: "You told us the income of buyer 1 is %{income}. This seems high. Are you sure this is correct?" + income2_value_check: + page_header: "" + check_answer_label: "Buyer 2 income confirmation" + hint_text: "" + question_text: "Are you sure this is correct?" + min: + title_text: "You told us income was %{income}." + informative_text: "This is less than we would expect for someone in this working situation." + max: + title_text: "You told us the income of buyer 2 is %{income}. This seems high. Are you sure this is correct?" + combined_income_value_check: + page_header: "" + check_answer_label: "Combined income confirmation" + hint_text: "" + question_text: "Are you sure this is correct?" + title_text: "You told us the combined income of this household is %{combined_income}. This seems high. Are you sure this is correct?" + mortgage_value_check: + page_header: "" + check_answer_label: "Mortgage confirmation" + hint_text: "" + question_text: "Are you sure that the mortgage is more than 5 times the income used for the mortgage application?" + title_text: "You told us that the mortgage amount is %{mortgage}." + informative_text: "This is more than 5 times the income, which is higher than we would expect." + savings_value_check: + page_header: "" + check_answer_label: "Savings confirmation" + hint_text: "" + question_text: "Are you sure the savings are higher than £100,000?" + joint_purchase: + title_text: You told us the buyers’ savings were %{savings}." + informative_text: "This is higher than we would expect." + not_joint_purchase: + title_text: "You told us the buyer’s savings were %{savings}." + informative_text: "This is higher than we would expect." + deposit_value_check:: + page_header: "" + check_answer_label: "Deposit confirmation" + hint_text: "" + question_text: "Are you sure that the deposit is this much higher than the buyer's savings?" + joint_purchase: + title_text: "You told us the buyers’ deposit was %{deposit} and their savings were %{savings}." + informative_text: "The deposit amount is higher than we would expect for the amount of savings they have." + not_joint_purchase: + title_text: "You told us the buyer’s deposit was %{deposit} and their savings were %{savings}." + informative_text: "The deposit amount is higher than we would expect for the amount of savings they have." diff --git a/config/locales/forms/2024/sales/income_benefits_and_savings.en.yml b/config/locales/forms/2024/sales/income_benefits_and_savings.en.yml new file mode 100644 index 000000000..0654c9e1f --- /dev/null +++ b/config/locales/forms/2024/sales/income_benefits_and_savings.en.yml @@ -0,0 +1,90 @@ +en: + forms: + 2024: + sales: + income_benefits_and_savings: + buyer_1_income: + page_header: "" + income1nk: + check_answer_label: "Buyer 1’s gross annual income known?" + hint_text: "" + question_text: "Do you know buyer 1’s annual income?" + income1: + check_answer_label: "Buyer 1’s gross annual income" + hint_text: "Provide the gross annual income (i.e. salary before tax) plus the annual amount of benefits, Universal Credit or pensions, and income from investments." + question_text: "Buyer 1’s gross annual income" + + inc1mort: + page_header: "" + check_answer_label: "Buyer 1’s income used for mortgage application" + hint_text: "" + question_text: "Was buyer 1’s income used for a mortgage application?" + + buyer_2_income: + page_header: "" + income2nk: + check_answer_label: "Buyer 2’s gross annual income known?" + hint_text: "" + question_text: "Do you know buyer 2’s annual income?" + income2: + check_answer_label: "Buyer 2’s gross annual income" + hint_text: "Provide the gross annual income (i.e. salary before tax) plus the annual amount of benefits, Universal Credit or pensions, and income from investments." + question_text: "Buyer 2’s gross annual income" + + inc2mort: + page_header: "" + check_answer_label: "Buyer 2’s income used for mortgage application" + hint_text: "" + question_text: "Was buyer 2’s income used for a mortgage application?" + + housing_benefits: + joint_purchase: + page_header: "" + check_answer_label: "Housing-related benefits buyers received before buying this property" + hint_text: "" + question_text: "Were the buyers receiving any of these housing-related benefits immediately before buying this property?" + not_joint_purchase: + page_header: "" + check_answer_label: "Housing-related benefits buyer received before buying this property" + hint_text: "" + question_text: "Was the buyer receiving any of these housing-related benefits immediately before buying this property?" + + savings: + joint_purchase: + page_header: "" + savingsnk: + check_answer_label: "Buyers’ total savings known?" + hint_text: "" + question_text: "Do you know how much the 'buyers' had in savings before they paid any deposit for the property?" + savings: + check_answer_label: "Buyers’ total savings before any deposit paid" + hint_text: "Include any savings, investments, ISAs, premium bonds, shares, or money held in a bank or building society account." + question_text: "Enter their total savings to the nearest £10" + not_joint_purchase: + page_header: "" + savingsnk: + check_answer_label: "Buyer’s total savings known?" + hint_text: "" + question_text: "Do you know how much the buyer had in savings before they paid any deposit for the property?" + savings: + check_answer_label: "Buyer’s total savings before any deposit paid" + hint_text: "Include any savings, investments, ISAs, premium bonds, shares, or money held in a bank or building society account." + question_text: "Enter their total savings to the nearest £10" + + prevown: + joint_purchase: + page_header: "" + check_answer_label: "Buyers previously owned a property." + hint_text: "" + question_text: "Have any of the buyers previously owned a property?" + not_joint_purchase: + page_header: "" + check_answer_label: "Buyer previously owned a property." + hint_text: "" + question_text: "Has the buyer previously owned a property?" + + prevshared: + page_header: "" + check_answer_label: "Previous property shared ownership?" + hint_text: "For any buyer" + question_text: "Was the previous property under shared ownership?" \ No newline at end of file diff --git a/config/locales/forms/2024/sales/soft_validations.en.yml b/config/locales/forms/2024/sales/soft_validations.en.yml new file mode 100644 index 000000000..853d21ad2 --- /dev/null +++ b/config/locales/forms/2024/sales/soft_validations.en.yml @@ -0,0 +1,60 @@ +en: + forms: + 2024: + sales: + soft_validations: + income1_value_check: + page_header: "" + check_answer_label: "Buyer 1 income confirmation" + hint_text: "" + question_text: "Are you sure this is correct?" + min: + title_text: "You told us income was %{income}." + informative_text: "This is less than we would expect for someone in this working situation." + max: + title_text: "You told us the income of buyer 1 is %{income}. This seems high. Are you sure this is correct?" + income2_value_check: + page_header: "" + check_answer_label: "Buyer 2 income confirmation" + hint_text: "" + question_text: "Are you sure this is correct?" + min: + title_text: "You told us income was %{income}." + informative_text: "This is less than we would expect for someone in this working situation." + max: + title_text: "You told us the income of buyer 2 is %{income}. This seems high. Are you sure this is correct?" + combined_income_value_check: + page_header: "" + check_answer_label: "Combined income confirmation" + hint_text: "" + question_text: "Are you sure this is correct?" + title_text: "You told us the combined income of this household is %{combined_income}. This seems high. Are you sure this is correct?" + mortgage_value_check: + page_header: "" + check_answer_label: "Mortgage confirmation" + hint_text: "" + question_text: "Are you sure that the mortgage is more than 5 times the income used for the mortgage application?" + title_text: "You told us that the mortgage amount is %{mortgage}." + informative_text: "This is more than 5 times the income, which is higher than we would expect." + savings_value_check: + page_header: "" + check_answer_label: "Savings confirmation" + hint_text: "" + question_text: "Are you sure the savings are higher than £100,000?" + joint_purchase: + title_text: You told us the buyers’ savings were %{savings}." + informative_text: "This is higher than we would expect." + not_joint_purchase: + title_text: "You told us the buyer’s savings were %{savings}." + informative_text: "This is higher than we would expect." + deposit_value_check: + page_header: "" + check_answer_label: "Deposit confirmation" + hint_text: "" + question_text: "Are you sure that the deposit is this much higher than the buyer's savings?" + joint_purchase: + title_text: "You told us the buyers’ deposit was %{deposit} and their savings were %{savings}." + informative_text: "The deposit amount is higher than we would expect for the amount of savings they have." + not_joint_purchase: + title_text: "You told us the buyer’s deposit was %{deposit} and their savings were %{savings}." + informative_text: "The deposit amount is higher than we would expect for the amount of savings they have." diff --git a/spec/models/form/sales/pages/buyer1_income_max_value_check_spec.rb b/spec/models/form/sales/pages/buyer1_income_max_value_check_spec.rb index 48e921468..fa5cf1e7c 100644 --- a/spec/models/form/sales/pages/buyer1_income_max_value_check_spec.rb +++ b/spec/models/form/sales/pages/buyer1_income_max_value_check_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::Buyer1IncomeMaxValueCheck, type: :model do let(:page_id) { "prefix_buyer_1_income_max_value_check" } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:subsection) { instance_double(Form::Subsection, form:) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/buyer1_income_min_value_check_spec.rb b/spec/models/form/sales/pages/buyer1_income_min_value_check_spec.rb index 1736daef7..79d61ce06 100644 --- a/spec/models/form/sales/pages/buyer1_income_min_value_check_spec.rb +++ b/spec/models/form/sales/pages/buyer1_income_min_value_check_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::Buyer1IncomeMinValueCheck, type: :model do let(:page_id) { "prefix_buyer_1_income_min_value_check" } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:subsection) { instance_double(Form::Subsection, form:) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/buyer2_income_max_value_check_spec.rb b/spec/models/form/sales/pages/buyer2_income_max_value_check_spec.rb index 440a6bb13..f467db18d 100644 --- a/spec/models/form/sales/pages/buyer2_income_max_value_check_spec.rb +++ b/spec/models/form/sales/pages/buyer2_income_max_value_check_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::Buyer2IncomeMaxValueCheck, type: :model do let(:page_id) { "prefix_buyer_2_income_max_value_check" } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:subsection) { instance_double(Form::Subsection, form:) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/buyer2_income_min_value_check_spec.rb b/spec/models/form/sales/pages/buyer2_income_min_value_check_spec.rb index 887dcab29..44b85ef9e 100644 --- a/spec/models/form/sales/pages/buyer2_income_min_value_check_spec.rb +++ b/spec/models/form/sales/pages/buyer2_income_min_value_check_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::Buyer2IncomeMinValueCheck, type: :model do let(:page_id) { "prefix_buyer_2_income_min_value_check" } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:subsection) { instance_double(Form::Subsection, form:) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/combined_income_max_value_check_spec.rb b/spec/models/form/sales/pages/combined_income_max_value_check_spec.rb index c79cb38da..f9b9954d9 100644 --- a/spec/models/form/sales/pages/combined_income_max_value_check_spec.rb +++ b/spec/models/form/sales/pages/combined_income_max_value_check_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::CombinedIncomeMaxValueCheck, type: :model do let(:page_id) { "prefix_combined_income_max_value_check" } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:subsection) { instance_double(Form::Subsection, form:) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/deposit_value_check_spec.rb b/spec/models/form/sales/pages/deposit_value_check_spec.rb index 5c4cd3608..dcd12449c 100644 --- a/spec/models/form/sales/pages/deposit_value_check_spec.rb +++ b/spec/models/form/sales/pages/deposit_value_check_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::DepositValueCheck, type: :model do let(:page_id) { "deposit_value_check" } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:subsection) { instance_double(Form::Subsection, form:) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/mortgage_value_check_spec.rb b/spec/models/form/sales/pages/mortgage_value_check_spec.rb index e4dc11bbc..be5aa5a77 100644 --- a/spec/models/form/sales/pages/mortgage_value_check_spec.rb +++ b/spec/models/form/sales/pages/mortgage_value_check_spec.rb @@ -6,7 +6,8 @@ RSpec.describe Form::Sales::Pages::MortgageValueCheck, type: :model do let(:page_id) { "buyer_1_income_mortgage_value_check" } let(:page_definition) { nil } let(:index) { 1 } - let(:subsection) { instance_double(Form::Subsection) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:subsection) { instance_double(Form::Subsection, form:) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/savings_value_check_spec.rb b/spec/models/form/sales/pages/savings_value_check_spec.rb index 81672977d..e680ff5d1 100644 --- a/spec/models/form/sales/pages/savings_value_check_spec.rb +++ b/spec/models/form/sales/pages/savings_value_check_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::SavingsValueCheck, type: :model do let(:page_id) { "savings_value_check" } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:subsection) { instance_double(Form::Subsection, form:) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb b/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb index e703e713a..bfd5313fb 100644 --- a/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb +++ b/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Subsections::DiscountedOwnershipScheme, type: :model let(:subsection_id) { nil } let(:subsection_definition) { nil } - let(:section) { instance_double(Form::Sales::Sections::SaleInformation) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:section) { instance_double(Form::Sales::Sections::SaleInformation, form:) } it "has correct section" do expect(discounted_ownership_scheme.section).to eq(section) diff --git a/spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb b/spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb index ea3fcd40e..922281fd0 100644 --- a/spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb +++ b/spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb @@ -8,7 +8,7 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipScheme, type: :model do let(:section) { instance_double(Form::Sales::Sections::SaleInformation) } before do - allow(section).to receive(:form).and_return(instance_double(Form, start_year_after_2024?: false)) + allow(section).to receive(:form).and_return(instance_double(Form, start_year_after_2024?: false, start_date: Time.zone.local(2023, 4, 1))) end it "has correct section" do From a65ee5676f5188a9cbde7d2ad86907f8a190b504 Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Tue, 22 Oct 2024 14:14:53 +0100 Subject: [PATCH 2/4] CLDC-2399: Bulk upload table styling (#2714) --- .../bulk_upload_error_row_component.html.erb | 30 +++++++++---------- .../bulk_upload_error_row_component.rb | 13 ++++++++ app/frontend/styles/_bulk-uploads.scss | 5 ++++ 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/app/components/bulk_upload_error_row_component.html.erb b/app/components/bulk_upload_error_row_component.html.erb index 65e38613f..4bd303957 100644 --- a/app/components/bulk_upload_error_row_component.html.erb +++ b/app/components/bulk_upload_error_row_component.html.erb @@ -13,7 +13,7 @@ <% if critical_errors.any? %>
These errors must be fixed to complete your logs.
- <%= govuk_table do |table| %> + <%= govuk_table(html_attributes: { class: potential_errors.any? ? "" : "no-bottom-border" }) do |table| %> <%= table.with_head do |head| %> <% head.with_row do |row| %> <% row.with_cell(header: true, text: "Cell") %> @@ -39,7 +39,7 @@ <% if potential_errors.any? %>The following groups of cells might have conflicting data. Check the answers and fix any incorrect data.
If the answers are correct, fix the critical errors and reupload the file. You'll need to confirm that the following data is correct when the file only contains potential errors.