From e40dbb2a84437bff32c2af472cdd78d8f32972e5 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 11 Feb 2025 15:57:45 +0000 Subject: [PATCH] CLDC-3866 Update previous tenure answer options (#2935) * Update previous tenure answer options * Fix page test --- .../lettings/questions/previous_tenure.rb | 5 +- .../questions/previous_tenure_renewal.rb | 8 ++- ...previous_housing_situation_renewal_spec.rb | 2 +- .../questions/previous_tenure_renewal_spec.rb | 31 ++++++--- .../questions/previous_tenure_spec.rb | 65 ++++++++++--------- 5 files changed, 66 insertions(+), 45 deletions(-) diff --git a/app/models/form/lettings/questions/previous_tenure.rb b/app/models/form/lettings/questions/previous_tenure.rb index 73585c412..c35d08d13 100644 --- a/app/models/form/lettings/questions/previous_tenure.rb +++ b/app/models/form/lettings/questions/previous_tenure.rb @@ -43,15 +43,14 @@ class Form::Lettings::Questions::PreviousTenure < ::Form::Question "32" => { "value" => "Fixed-term private registered provider (PRP) general needs tenancy" }, "31" => { "value" => "Lifetime local authority general needs tenancy" }, "33" => { "value" => "Lifetime private registered provider (PRP) general needs tenancy" }, - "34" => { "value" => "Specialist retirement housing" }, - "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, "35" => { "value" => "Extra care housing" }, + "38" => { "value" => "Older people’s housing for tenants with low support needs" }, "6" => { "value" => "Other supported housing" }, "3" => { "value" => "Private sector tenancy" }, "27" => { "value" => "Owner occupation (low-cost home ownership)" }, "26" => { "value" => "Owner occupation (private)" }, "28" => { "value" => "Living with friends and family (long-term)" }, - "38" => { "value" => "Sofa surfing (moving regularly between family and friends, no permanent bed)" }, + "39" => { "value" => "Sofa surfing (moving regularly between family and friends, no permanent bed)" }, "14" => { "value" => "Bed and breakfast" }, "7" => { "value" => "Direct access hostel" }, "10" => { "value" => "Hospital" }, diff --git a/app/models/form/lettings/questions/previous_tenure_renewal.rb b/app/models/form/lettings/questions/previous_tenure_renewal.rb index c882eb6fe..e932fd218 100644 --- a/app/models/form/lettings/questions/previous_tenure_renewal.rb +++ b/app/models/form/lettings/questions/previous_tenure_renewal.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question @copy_key = "lettings.household_situation.prevten.renewal" @type = "radio" @check_answers_card_number = 0 - @answer_options = ANSWER_OPTIONS + @answer_options = form.start_year_2025_or_later? ? ANSWER_OPTIONS_2025 : ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end @@ -16,5 +16,11 @@ class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question "6" => { "value" => "Other supported housing" }, }.freeze + ANSWER_OPTIONS_2025 = { + "35" => { "value" => "Extra care housing" }, + "38" => { "value" => "Older people’s housing for tenants with low support needs" }, + "6" => { "value" => "Other supported housing" }, + }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77 }.freeze end diff --git a/spec/models/form/lettings/pages/previous_housing_situation_renewal_spec.rb b/spec/models/form/lettings/pages/previous_housing_situation_renewal_spec.rb index af8e7b5fc..a310185c5 100644 --- a/spec/models/form/lettings/pages/previous_housing_situation_renewal_spec.rb +++ b/spec/models/form/lettings/pages/previous_housing_situation_renewal_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe Form::Lettings::Pages::PreviousHousingSituationRenewal, type: :model do subject(:page) { described_class.new(nil, nil, subsection) } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2025_or_later?: false)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb b/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb index d672c573b..850949de9 100644 --- a/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb +++ b/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb @@ -3,7 +3,8 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::PreviousTenureRenewal, type: :model do subject(:question) { described_class.new(nil, nil, page) } - let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)))) } + let(:start_year_after_2025) { false } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2025_or_later?: start_year_after_2025))) } it "has the correct id" do expect(question.id).to eq("prevten") @@ -21,12 +22,26 @@ RSpec.describe Form::Lettings::Questions::PreviousTenureRenewal, type: :model do expect(question.derived?(nil)).to be false end - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "34" => { "value" => "Specialist retirement housing" }, - "35" => { "value" => "Extra care housing" }, - "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, - "6" => { "value" => "Other supported housing" }, - }) + context "with logs before 2025" do + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "34" => { "value" => "Specialist retirement housing" }, + "35" => { "value" => "Extra care housing" }, + "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, + "6" => { "value" => "Other supported housing" }, + }) + end + end + + context "with logs on or after 2025" do + let(:start_year_after_2025) { true } + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "35" => { "value" => "Extra care housing" }, + "38" => { "value" => "Older people’s housing for tenants with low support needs" }, + "6" => { "value" => "Other supported housing" }, + }) + end end end diff --git a/spec/models/form/lettings/questions/previous_tenure_spec.rb b/spec/models/form/lettings/questions/previous_tenure_spec.rb index d5eaae5fe..1380d1b1f 100644 --- a/spec/models/form/lettings/questions/previous_tenure_spec.rb +++ b/spec/models/form/lettings/questions/previous_tenure_spec.rb @@ -22,35 +22,37 @@ RSpec.describe Form::Lettings::Questions::PreviousTenure, type: :model do expect(question.derived?(nil)).to be false end - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "30" => { "value" => "Fixed-term local authority general needs tenancy" }, - "32" => { "value" => "Fixed-term private registered provider (PRP) general needs tenancy" }, - "31" => { "value" => "Lifetime local authority general needs tenancy" }, - "33" => { "value" => "Lifetime private registered provider (PRP) general needs tenancy" }, - "34" => { "value" => "Specialist retirement housing" }, - "35" => { "value" => "Extra care housing" }, - "6" => { "value" => "Other supported housing" }, - "3" => { "value" => "Private sector tenancy" }, - "27" => { "value" => "Owner occupation (low-cost home ownership)" }, - "26" => { "value" => "Owner occupation (private)" }, - "28" => { "value" => "Living with friends or family" }, - "14" => { "value" => "Bed and breakfast" }, - "7" => { "value" => "Direct access hostel" }, - "10" => { "value" => "Hospital" }, - "29" => { "value" => "Prison or approved probation hostel" }, - "19" => { "value" => "Rough sleeping" }, - "18" => { "value" => "Any other temporary accommodation" }, - "13" => { "value" => "Children’s home or foster care" }, - "24" => { "value" => "Home Office Asylum Support" }, - "23" => { "value" => "Mobile home or caravan" }, - "21" => { "value" => "Refuge" }, - "9" => { "value" => "Residential care home" }, - "4" => { "value" => "Tied housing or rented with job" }, - "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, - "37" => { "value" => "Host family or similar refugee accommodation" }, - "25" => { "value" => "Any other accommodation" }, - }) + context "with start year before 2025" do + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "30" => { "value" => "Fixed-term local authority general needs tenancy" }, + "32" => { "value" => "Fixed-term private registered provider (PRP) general needs tenancy" }, + "31" => { "value" => "Lifetime local authority general needs tenancy" }, + "33" => { "value" => "Lifetime private registered provider (PRP) general needs tenancy" }, + "34" => { "value" => "Specialist retirement housing" }, + "35" => { "value" => "Extra care housing" }, + "6" => { "value" => "Other supported housing" }, + "3" => { "value" => "Private sector tenancy" }, + "27" => { "value" => "Owner occupation (low-cost home ownership)" }, + "26" => { "value" => "Owner occupation (private)" }, + "28" => { "value" => "Living with friends or family" }, + "14" => { "value" => "Bed and breakfast" }, + "7" => { "value" => "Direct access hostel" }, + "10" => { "value" => "Hospital" }, + "29" => { "value" => "Prison or approved probation hostel" }, + "19" => { "value" => "Rough sleeping" }, + "18" => { "value" => "Any other temporary accommodation" }, + "13" => { "value" => "Children’s home or foster care" }, + "24" => { "value" => "Home Office Asylum Support" }, + "23" => { "value" => "Mobile home or caravan" }, + "21" => { "value" => "Refuge" }, + "9" => { "value" => "Residential care home" }, + "4" => { "value" => "Tied housing or rented with job" }, + "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, + "37" => { "value" => "Host family or similar refugee accommodation" }, + "25" => { "value" => "Any other accommodation" }, + }) + end end context "with 2025 logs" do @@ -62,14 +64,14 @@ RSpec.describe Form::Lettings::Questions::PreviousTenure, type: :model do "32" => { "value" => "Fixed-term private registered provider (PRP) general needs tenancy" }, "31" => { "value" => "Lifetime local authority general needs tenancy" }, "33" => { "value" => "Lifetime private registered provider (PRP) general needs tenancy" }, - "34" => { "value" => "Specialist retirement housing" }, "35" => { "value" => "Extra care housing" }, + "38" => { "value" => "Older people’s housing for tenants with low support needs" }, "6" => { "value" => "Other supported housing" }, "3" => { "value" => "Private sector tenancy" }, "27" => { "value" => "Owner occupation (low-cost home ownership)" }, "26" => { "value" => "Owner occupation (private)" }, "28" => { "value" => "Living with friends and family (long-term)" }, - "38" => { "value" => "Sofa surfing (moving regularly between family and friends, no permanent bed)" }, + "39" => { "value" => "Sofa surfing (moving regularly between family and friends, no permanent bed)" }, "14" => { "value" => "Bed and breakfast" }, "7" => { "value" => "Direct access hostel" }, "10" => { "value" => "Hospital" }, @@ -82,7 +84,6 @@ RSpec.describe Form::Lettings::Questions::PreviousTenure, type: :model do "21" => { "value" => "Refuge" }, "9" => { "value" => "Residential care home" }, "4" => { "value" => "Tied housing or rented with job" }, - "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, "37" => { "value" => "Host family or similar refugee accommodation" }, "25" => { "value" => "Any other accommodation" }, })