From b5d4b16aa929fa067aa82493fe04aacc740a16f1 Mon Sep 17 00:00:00 2001 From: Rebecca Jesson Date: Tue, 11 Aug 2026 16:34:31 +0100 Subject: [PATCH] CLDC-4402: simplify some start_year_2024_or_later uses p2 --- .../questions/referral_general_needs.rb | 120 +++++--------- .../questions/referral_supported_housing.rb | 120 +++++--------- .../referral_supported_housing_prp.rb | 138 ++++++---------- app/models/form/lettings/questions/rsnvac.rb | 135 ++++++---------- .../questions/starter_tenancy_type.rb | 80 ++++----- .../form/lettings/questions/tenancy_type.rb | 80 ++++----- .../lettings/questions/uprn_confirmation.rb | 15 +- .../form/lettings/questions/waityear.rb | 17 +- .../questions/referral_general_needs_spec.rb | 74 +++------ .../referral_supported_housing_prp_spec.rb | 80 +++------ .../referral_supported_housing_spec.rb | 74 +++------ .../form/lettings/questions/rsnvac_spec.rb | 152 ++++++------------ .../questions/starter_tenancy_type_spec.rb | 104 ++++-------- .../lettings/questions/tenancy_type_spec.rb | 47 +----- .../form/lettings/questions/waityear_spec.rb | 24 +-- 15 files changed, 387 insertions(+), 873 deletions(-) diff --git a/app/models/form/lettings/questions/referral_general_needs.rb b/app/models/form/lettings/questions/referral_general_needs.rb index f2b2167a3..4b10c6637 100644 --- a/app/models/form/lettings/questions/referral_general_needs.rb +++ b/app/models/form/lettings/questions/referral_general_needs.rb @@ -10,87 +10,45 @@ class Form::Lettings::Questions::ReferralGeneralNeeds < ::Form::Question end def answer_options - if form.start_year_2024_or_later? - { - "1" => { - "value" => "Internal transfer", - "hint" => "Where the tenant has moved to another social property owned by the same landlord.", - }, - "2" => { - "value" => "Tenant applied directly (no referral or nomination)", - }, - "8" => { - "value" => "Re-located through official housing mobility scheme", - }, - "10" => { - "value" => "Other social landlord", - }, - "9" => { - "value" => "Community learning disability team", - }, - "14" => { - "value" => "Community mental health team", - }, - "15" => { - "value" => "Health service", - }, - "18" => { - "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence", - }, - "19" => { - "value" => "Police, probation, prison or youth offending team – no custodial sentence", - }, - "7" => { - "value" => "Voluntary agency", - }, - "17" => { - "value" => "Children’s Social Care", - }, - "16" => { - "value" => "Other", - }, - }.freeze - else - { - "1" => { - "value" => "Internal transfer", - "hint" => "Where the tenant has moved to another social property owned by the same landlord.", - }, - "2" => { - "value" => "Tenant applied directly (no referral or nomination)", - }, - "8" => { - "value" => "Re-located through official housing mobility scheme", - }, - "10" => { - "value" => "Other social landlord", - }, - "9" => { - "value" => "Community learning disability team", - }, - "14" => { - "value" => "Community mental health team", - }, - "15" => { - "value" => "Health service", - }, - "12" => { - "value" => "Police, probation or prison", - }, - "7" => { - "value" => "Voluntary agency", - }, - "13" => { - "value" => "Youth offending team", - }, - "17" => { - "value" => "Children’s Social Care", - }, - "16" => { - "value" => "Other", - }, - }.freeze - end + { + "1" => { + "value" => "Internal transfer", + "hint" => "Where the tenant has moved to another social property owned by the same landlord.", + }, + "2" => { + "value" => "Tenant applied directly (no referral or nomination)", + }, + "8" => { + "value" => "Re-located through official housing mobility scheme", + }, + "10" => { + "value" => "Other social landlord", + }, + "9" => { + "value" => "Community learning disability team", + }, + "14" => { + "value" => "Community mental health team", + }, + "15" => { + "value" => "Health service", + }, + "18" => { + "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence", + }, + "19" => { + "value" => "Police, probation, prison or youth offending team – no custodial sentence", + }, + "7" => { + "value" => "Voluntary agency", + }, + "17" => { + "value" => "Children’s Social Care", + }, + "16" => { + "value" => "Other", + }, + }.freeze end QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze diff --git a/app/models/form/lettings/questions/referral_supported_housing.rb b/app/models/form/lettings/questions/referral_supported_housing.rb index 2caddc8e2..e813056d8 100644 --- a/app/models/form/lettings/questions/referral_supported_housing.rb +++ b/app/models/form/lettings/questions/referral_supported_housing.rb @@ -10,87 +10,45 @@ class Form::Lettings::Questions::ReferralSupportedHousing < ::Form::Question end def answer_options - if form.start_year_2024_or_later? - { - "1" => { - "value" => "Internal transfer", - "hint" => "Where the tenant has moved to another social property owned by the same landlord.", - }, - "2" => { - "value" => "Tenant applied directly (no referral or nomination)", - }, - "8" => { - "value" => "Re-located through official housing mobility scheme", - }, - "10" => { - "value" => "Other social landlord", - }, - "9" => { - "value" => "Community learning disability team", - }, - "14" => { - "value" => "Community mental health team", - }, - "15" => { - "value" => "Health service", - }, - "18" => { - "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence", - }, - "19" => { - "value" => "Police, probation, prison or youth offending team – no custodial sentence", - }, - "7" => { - "value" => "Voluntary agency", - }, - "17" => { - "value" => "Children’s Social Care", - }, - "16" => { - "value" => "Other", - }, - }.freeze - else - { - "1" => { - "value" => "Internal transfer", - "hint" => "Where the tenant has moved to another social property owned by the same landlord.", - }, - "2" => { - "value" => "Tenant applied directly (no referral or nomination)", - }, - "8" => { - "value" => "Re-located through official housing mobility scheme", - }, - "10" => { - "value" => "Other social landlord", - }, - "9" => { - "value" => "Community learning disability team", - }, - "14" => { - "value" => "Community mental health team", - }, - "15" => { - "value" => "Health service", - }, - "12" => { - "value" => "Police, probation or prison", - }, - "7" => { - "value" => "Voluntary agency", - }, - "13" => { - "value" => "Youth offending team", - }, - "17" => { - "value" => "Children’s Social Care", - }, - "16" => { - "value" => "Other", - }, - }.freeze - end + { + "1" => { + "value" => "Internal transfer", + "hint" => "Where the tenant has moved to another social property owned by the same landlord.", + }, + "2" => { + "value" => "Tenant applied directly (no referral or nomination)", + }, + "8" => { + "value" => "Re-located through official housing mobility scheme", + }, + "10" => { + "value" => "Other social landlord", + }, + "9" => { + "value" => "Community learning disability team", + }, + "14" => { + "value" => "Community mental health team", + }, + "15" => { + "value" => "Health service", + }, + "18" => { + "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence", + }, + "19" => { + "value" => "Police, probation, prison or youth offending team – no custodial sentence", + }, + "7" => { + "value" => "Voluntary agency", + }, + "17" => { + "value" => "Children’s Social Care", + }, + "16" => { + "value" => "Other", + }, + }.freeze end QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze diff --git a/app/models/form/lettings/questions/referral_supported_housing_prp.rb b/app/models/form/lettings/questions/referral_supported_housing_prp.rb index 89f02a723..bb07d11e0 100644 --- a/app/models/form/lettings/questions/referral_supported_housing_prp.rb +++ b/app/models/form/lettings/questions/referral_supported_housing_prp.rb @@ -10,99 +10,51 @@ class Form::Lettings::Questions::ReferralSupportedHousingPrp < ::Form::Question end def answer_options - if form.start_year_2024_or_later? - { - "1" => { - "value" => "Internal transfer", - "hint" => "Where the tenant has moved to another social property owned by the same landlord.", - }, - "2" => { - "value" => "Tenant applied directly (no referral or nomination)", - }, - "3" => { - "value" => "Nominated by a local housing authority", - }, - "4" => { - "value" => "Referred by local authority housing department", - }, - "8" => { - "value" => "Re-located through official housing mobility scheme", - }, - "10" => { - "value" => "Other social landlord", - }, - "9" => { - "value" => "Community learning disability team", - }, - "14" => { - "value" => "Community mental health team", - }, - "15" => { - "value" => "Health service", - }, - "18" => { - "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence", - }, - "19" => { - "value" => "Police, probation, prison or youth offending team – no custodial sentence", - }, - "7" => { - "value" => "Voluntary agency", - }, - "17" => { - "value" => "Children’s Social Care", - }, - "16" => { - "value" => "Other", - }, - }.freeze - else - { - "1" => { - "value" => "Internal transfer", - "hint" => "Where the tenant has moved to another social property owned by the same landlord.", - }, - "2" => { - "value" => "Tenant applied directly (no referral or nomination)", - }, - "3" => { - "value" => "Nominated by a local housing authority", - }, - "4" => { - "value" => "Referred by local authority housing department", - }, - "8" => { - "value" => "Re-located through official housing mobility scheme", - }, - "10" => { - "value" => "Other social landlord", - }, - "9" => { - "value" => "Community learning disability team", - }, - "14" => { - "value" => "Community mental health team", - }, - "15" => { - "value" => "Health service", - }, - "12" => { - "value" => "Police, probation or prison", - }, - "7" => { - "value" => "Voluntary agency", - }, - "13" => { - "value" => "Youth offending team", - }, - "17" => { - "value" => "Children’s Social Care", - }, - "16" => { - "value" => "Other", - }, - }.freeze - end + { + "1" => { + "value" => "Internal transfer", + "hint" => "Where the tenant has moved to another social property owned by the same landlord.", + }, + "2" => { + "value" => "Tenant applied directly (no referral or nomination)", + }, + "3" => { + "value" => "Nominated by a local housing authority", + }, + "4" => { + "value" => "Referred by local authority housing department", + }, + "8" => { + "value" => "Re-located through official housing mobility scheme", + }, + "10" => { + "value" => "Other social landlord", + }, + "9" => { + "value" => "Community learning disability team", + }, + "14" => { + "value" => "Community mental health team", + }, + "15" => { + "value" => "Health service", + }, + "18" => { + "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence", + }, + "19" => { + "value" => "Police, probation, prison or youth offending team – no custodial sentence", + }, + "7" => { + "value" => "Voluntary agency", + }, + "17" => { + "value" => "Children’s Social Care", + }, + "16" => { + "value" => "Other", + }, + }.freeze end QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze diff --git a/app/models/form/lettings/questions/rsnvac.rb b/app/models/form/lettings/questions/rsnvac.rb index 48523b284..736c31610 100644 --- a/app/models/form/lettings/questions/rsnvac.rb +++ b/app/models/form/lettings/questions/rsnvac.rb @@ -7,95 +7,52 @@ class Form::Lettings::Questions::Rsnvac < ::Form::Question end def answer_options - if form.start_year_2024_or_later? - { - "14" => { - "value" => "Renewal of fixed-term tenancy", - "hint" => "To the same tenant in the same property, except if was previously used as temporary accommodation.", - }, - "9" => { - "value" => "Re-let to tenant who occupied same property as temporary accommodation", - }, - "13" => { - "value" => "Internal transfer", - "hint" => "Where a tenant moved from one social housing property to another property. Their landlord may be the same or may have changed.", - }, - "12" => { - "value" => "Tenant moved to other social housing provider", - }, - "8" => { - "value" => "Tenant moved to private sector or other accommodation", - }, - "18" => { - "value" => "Tenant moved to care home", - }, - "20" => { - "value" => "Tenant moved to long-stay hospital or similar institution", - }, - "5" => { - "value" => "Tenant died with no succession", - }, - "19" => { - "value" => "Tenant involved in a succession downsize", - }, - "6" => { - "value" => "Tenant abandoned property", - }, - "10" => { - "value" => "Tenant was evicted due to rent arrears", - }, - "11" => { - "value" => "Tenant was evicted due to anti-social behaviour", - }, - "21" => { - "value" => "Tenant was evicted due to both rent arrears and anti-social behaviour", - }, - "22" => { - "value" => "Any other reason", - }, - } - else - { - "13" => { - "value" => "Internal transfer", - "hint" => "Where a tenant moved from one social housing property to another property. Their landlord may be the same or may have changed.", - }, - "5" => { - "value" => "Previous tenant died with no succession", - }, - "9" => { - "value" => "Re-let to tenant who occupied same property as temporary accommodation", - }, - "14" => { - "value" => "Renewal of fixed-term tenancy", - "hint" => "To the same tenant in the same property, except if was previously used as temporary accommodation.", - }, - "19" => { - "value" => "Tenant involved in a succession downsize", - }, - "8" => { - "value" => "Tenant moved to private sector or other accommodation", - }, - "12" => { - "value" => "Tenant moved to other social housing provider", - }, - "18" => { - "value" => "Tenant moved to care home", - }, - "20" => { - "value" => "Tenant moved to long-stay hospital or similar institution", - }, - "6" => { - "value" => "Tenant abandoned property", - }, - "10" => { - "value" => "Tenant was evicted due to rent arrears", - }, - "11" => { - "value" => "Tenant was evicted due to anti-social behaviour", - }, - } - end + { + "14" => { + "value" => "Renewal of fixed-term tenancy", + "hint" => "To the same tenant in the same property, except if was previously used as temporary accommodation.", + }, + "9" => { + "value" => "Re-let to tenant who occupied same property as temporary accommodation", + }, + "13" => { + "value" => "Internal transfer", + "hint" => "Where a tenant moved from one social housing property to another property. Their landlord may be the same or may have changed.", + }, + "12" => { + "value" => "Tenant moved to other social housing provider", + }, + "8" => { + "value" => "Tenant moved to private sector or other accommodation", + }, + "18" => { + "value" => "Tenant moved to care home", + }, + "20" => { + "value" => "Tenant moved to long-stay hospital or similar institution", + }, + "5" => { + "value" => "Tenant died with no succession", + }, + "19" => { + "value" => "Tenant involved in a succession downsize", + }, + "6" => { + "value" => "Tenant abandoned property", + }, + "10" => { + "value" => "Tenant was evicted due to rent arrears", + }, + "11" => { + "value" => "Tenant was evicted due to anti-social behaviour", + }, + "21" => { + "value" => "Tenant was evicted due to both rent arrears and anti-social behaviour", + }, + "22" => { + "value" => "Any other reason", + }, + } end QUESTION_NUMBER_FROM_YEAR = { 2023 => 17, 2024 => 18, 2025 => 15, 2026 => 15 }.freeze diff --git a/app/models/form/lettings/questions/starter_tenancy_type.rb b/app/models/form/lettings/questions/starter_tenancy_type.rb index 4224781bd..fabd7db2b 100644 --- a/app/models/form/lettings/questions/starter_tenancy_type.rb +++ b/app/models/form/lettings/questions/starter_tenancy_type.rb @@ -10,59 +10,33 @@ class Form::Lettings::Questions::StarterTenancyType < ::Form::Question end def answer_options - if form.start_year_2024_or_later? - { - "4" => { - "value" => "Assured Shorthold Tenancy (AST) – Fixed term", - "hint" => "These are mostly provided by housing associations. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "6" => { - "value" => "Secure – fixed term", - "hint" => "These are mostly provided by local authorities. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "2" => { - "value" => "Assured – lifetime", - }, - "7" => { - "value" => "Secure – lifetime", - }, - "8" => { - "value" => "Periodic", - "hint" => "These are rolling tenancies with no fixed end date. They may have an initial fixed term and then become rolling.", - }, - "5" => { - "value" => "Licence agreement", - "hint" => "These are mostly used for Supported Housing and work on a rolling basis.", - }, - "3" => { - "value" => "Other", - }, - }.freeze - else - { - "4" => { - "value" => "Assured Shorthold Tenancy (AST) – Fixed term", - "hint" => "Mostly housing associations provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "6" => { - "value" => "Secure – fixed term", - "hint" => "Mostly local authorities provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "2" => { - "value" => "Assured – lifetime", - }, - "7" => { - "value" => "Secure – lifetime", - }, - "5" => { - "value" => "Licence agreement", - "hint" => "Licence agreements are mostly used for Supported Housing and work on a rolling basis.", - }, - "3" => { - "value" => "Other", - }, - }.freeze - end + { + "4" => { + "value" => "Assured Shorthold Tenancy (AST) – Fixed term", + "hint" => "These are mostly provided by housing associations. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "6" => { + "value" => "Secure – fixed term", + "hint" => "These are mostly provided by local authorities. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "2" => { + "value" => "Assured – lifetime", + }, + "7" => { + "value" => "Secure – lifetime", + }, + "8" => { + "value" => "Periodic", + "hint" => "These are rolling tenancies with no fixed end date. They may have an initial fixed term and then become rolling.", + }, + "5" => { + "value" => "Licence agreement", + "hint" => "These are mostly used for Supported Housing and work on a rolling basis.", + }, + "3" => { + "value" => "Other", + }, + }.freeze end QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28, 2026 => 27 }.freeze diff --git a/app/models/form/lettings/questions/tenancy_type.rb b/app/models/form/lettings/questions/tenancy_type.rb index d2b9a5925..3324c0281 100644 --- a/app/models/form/lettings/questions/tenancy_type.rb +++ b/app/models/form/lettings/questions/tenancy_type.rb @@ -10,59 +10,33 @@ class Form::Lettings::Questions::TenancyType < ::Form::Question end def answer_options - if form.start_year_2024_or_later? - { - "4" => { - "value" => "Assured Shorthold Tenancy (AST) – Fixed term", - "hint" => "These are mostly provided by housing associations. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "6" => { - "value" => "Secure – fixed term", - "hint" => "These are mostly provided by local authorities. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "2" => { - "value" => "Assured – lifetime", - }, - "7" => { - "value" => "Secure – lifetime", - }, - "8" => { - "value" => "Periodic", - "hint" => "These are rolling tenancies with no fixed end date. They may have an initial fixed term and then become rolling.", - }, - "5" => { - "value" => "Licence agreement", - "hint" => "These are mostly used for Supported Housing and work on a rolling basis.", - }, - "3" => { - "value" => "Other", - }, - }.freeze - else - { - "4" => { - "value" => "Assured Shorthold Tenancy (AST) – Fixed term", - "hint" => "Mostly housing associations provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "6" => { - "value" => "Secure – fixed term", - "hint" => "Mostly local authorities provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "2" => { - "value" => "Assured – lifetime", - }, - "7" => { - "value" => "Secure – lifetime", - }, - "5" => { - "value" => "Licence agreement", - "hint" => "Licence agreements are mostly used for Supported Housing and work on a rolling basis.", - }, - "3" => { - "value" => "Other", - }, - }.freeze - end + { + "4" => { + "value" => "Assured Shorthold Tenancy (AST) – Fixed term", + "hint" => "These are mostly provided by housing associations. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "6" => { + "value" => "Secure – fixed term", + "hint" => "These are mostly provided by local authorities. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "2" => { + "value" => "Assured – lifetime", + }, + "7" => { + "value" => "Secure – lifetime", + }, + "8" => { + "value" => "Periodic", + "hint" => "These are rolling tenancies with no fixed end date. They may have an initial fixed term and then become rolling.", + }, + "5" => { + "value" => "Licence agreement", + "hint" => "These are mostly used for Supported Housing and work on a rolling basis.", + }, + "3" => { + "value" => "Other", + }, + }.freeze end QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28, 2026 => 27 }.freeze diff --git a/app/models/form/lettings/questions/uprn_confirmation.rb b/app/models/form/lettings/questions/uprn_confirmation.rb index 2f03cb357..160933cc1 100644 --- a/app/models/form/lettings/questions/uprn_confirmation.rb +++ b/app/models/form/lettings/questions/uprn_confirmation.rb @@ -8,17 +8,10 @@ class Form::Lettings::Questions::UprnConfirmation < ::Form::Question end def answer_options - if form.start_year_2024_or_later? - { - "1" => { "value" => "Yes" }, - "0" => { "value" => "No, I want to search for the address instead" }, - }.freeze - else - { - "1" => { "value" => "Yes" }, - "0" => { "value" => "No, I want to enter the address manually" }, - }.freeze - end + { + "1" => { "value" => "Yes" }, + "0" => { "value" => "No, I want to search for the address instead" }, + }.freeze end def notification_banner(log = nil) diff --git a/app/models/form/lettings/questions/waityear.rb b/app/models/form/lettings/questions/waityear.rb index 8745bf227..43a63dd0d 100644 --- a/app/models/form/lettings/questions/waityear.rb +++ b/app/models/form/lettings/questions/waityear.rb @@ -23,27 +23,14 @@ class Form::Lettings::Questions::Waityear < ::Form::Question }.freeze end - if form.start_year_2024_or_later? - return { - "2" => { "value" => "Less than 1 year" }, - "7" => { "value" => "1 year but under 2 years" }, - "8" => { "value" => "2 years but under 3 years" }, - "9" => { "value" => "3 years but under 4 years" }, - "10" => { "value" => "4 years but under 5 years" }, - "11" => { "value" => "5 years but under 10 years" }, - "12" => { "value" => "10 years or more" }, - "divider" => { "value" => true }, - "6" => { "value" => "Don’t know" }, - }.freeze - end - { "2" => { "value" => "Less than 1 year" }, "7" => { "value" => "1 year but under 2 years" }, "8" => { "value" => "2 years but under 3 years" }, "9" => { "value" => "3 years but under 4 years" }, "10" => { "value" => "4 years but under 5 years" }, - "5" => { "value" => "5 years or more" }, + "11" => { "value" => "5 years but under 10 years" }, + "12" => { "value" => "10 years or more" }, "divider" => { "value" => true }, "6" => { "value" => "Don’t know" }, }.freeze diff --git a/spec/models/form/lettings/questions/referral_general_needs_spec.rb b/spec/models/form/lettings/questions/referral_general_needs_spec.rb index 2f7c7a864..22d789823 100644 --- a/spec/models/form/lettings/questions/referral_general_needs_spec.rb +++ b/spec/models/form/lettings/questions/referral_general_needs_spec.rb @@ -1,16 +1,17 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::ReferralGeneralNeeds, type: :model do + include CollectionTimeHelper + subject(:question) { described_class.new(question_id, question_definition, page) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } + let(:form) { instance_double(Form, start_date: current_collection_start_date) } before do - allow(form).to receive(:start_year_2024_or_later?).and_return(false) allow(page).to receive(:subsection).and_return(subsection) allow(subsection).to receive(:form).and_return(form) end @@ -35,55 +36,24 @@ RSpec.describe Form::Lettings::Questions::ReferralGeneralNeeds, type: :model do expect(question).not_to be_derived(nil) end - context "with 2023/24 form" do - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, - "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, - "8" => { "value" => "Re-located through official housing mobility scheme" }, - "10" => { "value" => "Other social landlord" }, - "9" => { "value" => "Community learning disability team" }, - "14" => { "value" => "Community mental health team" }, - "15" => { "value" => "Health service" }, - "12" => { "value" => "Police, probation or prison" }, - "7" => { "value" => "Voluntary agency" }, - "13" => { "value" => "Youth offending team" }, - "17" => { "value" => "Children’s Social Care" }, - "16" => { "value" => "Other" }, - }) - end - - it "has the correct question number" do - expect(question.question_number).to eq(85) - end - end - - context "with 2024/25 form" do - let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } - - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, - "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, - "8" => { "value" => "Re-located through official housing mobility scheme" }, - "10" => { "value" => "Other social landlord" }, - "9" => { "value" => "Community learning disability team" }, - "14" => { "value" => "Community mental health team" }, - "15" => { "value" => "Health service" }, - "18" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence" }, - "19" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence" }, - "7" => { "value" => "Voluntary agency" }, - "17" => { "value" => "Children’s Social Care" }, - "16" => { "value" => "Other" }, - }) - end - - it "has the correct question number" do - expect(question.question_number).to eq(84) - end + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, + "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, + "8" => { "value" => "Re-located through official housing mobility scheme" }, + "10" => { "value" => "Other social landlord" }, + "9" => { "value" => "Community learning disability team" }, + "14" => { "value" => "Community mental health team" }, + "15" => { "value" => "Health service" }, + "18" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence" }, + "19" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence" }, + "7" => { "value" => "Voluntary agency" }, + "17" => { "value" => "Children’s Social Care" }, + "16" => { "value" => "Other" }, + }) + end + + it "has the correct question number" do + expect(question.question_number).to eq(84) end end diff --git a/spec/models/form/lettings/questions/referral_supported_housing_prp_spec.rb b/spec/models/form/lettings/questions/referral_supported_housing_prp_spec.rb index 3059c122d..54768e967 100644 --- a/spec/models/form/lettings/questions/referral_supported_housing_prp_spec.rb +++ b/spec/models/form/lettings/questions/referral_supported_housing_prp_spec.rb @@ -1,16 +1,17 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::ReferralSupportedHousingPrp, type: :model do + include CollectionTimeHelper + subject(:question) { described_class.new(question_id, question_definition, page) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } + let(:form) { instance_double(Form, start_date: current_collection_start_date) } before do - allow(form).to receive(:start_year_2024_or_later?).and_return(false) allow(page).to receive(:subsection).and_return(subsection) allow(subsection).to receive(:form).and_return(form) end @@ -35,59 +36,26 @@ RSpec.describe Form::Lettings::Questions::ReferralSupportedHousingPrp, type: :mo expect(question).not_to be_derived(nil) end - context "with 2023/24 form" do - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, - "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, - "3" => { "value" => "Nominated by a local housing authority" }, - "4" => { "value" => "Referred by local authority housing department" }, - "8" => { "value" => "Re-located through official housing mobility scheme" }, - "10" => { "value" => "Other social landlord" }, - "9" => { "value" => "Community learning disability team" }, - "14" => { "value" => "Community mental health team" }, - "15" => { "value" => "Health service" }, - "12" => { "value" => "Police, probation or prison" }, - "7" => { "value" => "Voluntary agency" }, - "13" => { "value" => "Youth offending team" }, - "17" => { "value" => "Children’s Social Care" }, - "16" => { "value" => "Other" }, - }) - end - - it "has the correct question number" do - expect(question.question_number).to eq(85) - end - end - - context "with 2024/25 form" do - let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } - - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, - "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, - "3" => { "value" => "Nominated by a local housing authority" }, - "4" => { "value" => "Referred by local authority housing department" }, - "8" => { "value" => "Re-located through official housing mobility scheme" }, - "10" => { "value" => "Other social landlord" }, - "9" => { "value" => "Community learning disability team" }, - "14" => { "value" => "Community mental health team" }, - "15" => { "value" => "Health service" }, - "18" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence" }, - "19" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence" }, - "7" => { "value" => "Voluntary agency" }, - "17" => { "value" => "Children’s Social Care" }, - "16" => { "value" => "Other" }, - }) - end - - it "has the correct question number" do - expect(question.question_number).to eq(84) - end + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, + "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, + "3" => { "value" => "Nominated by a local housing authority" }, + "4" => { "value" => "Referred by local authority housing department" }, + "8" => { "value" => "Re-located through official housing mobility scheme" }, + "10" => { "value" => "Other social landlord" }, + "9" => { "value" => "Community learning disability team" }, + "14" => { "value" => "Community mental health team" }, + "15" => { "value" => "Health service" }, + "18" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence" }, + "19" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence" }, + "7" => { "value" => "Voluntary agency" }, + "17" => { "value" => "Children’s Social Care" }, + "16" => { "value" => "Other" }, + }) + end + + it "has the correct question number" do + expect(question.question_number).to eq(84) end end diff --git a/spec/models/form/lettings/questions/referral_supported_housing_spec.rb b/spec/models/form/lettings/questions/referral_supported_housing_spec.rb index 5a4af55e5..c6d07f91a 100644 --- a/spec/models/form/lettings/questions/referral_supported_housing_spec.rb +++ b/spec/models/form/lettings/questions/referral_supported_housing_spec.rb @@ -1,16 +1,17 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::ReferralSupportedHousing, type: :model do + include CollectionTimeHelper + subject(:question) { described_class.new(question_id, question_definition, page) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } + let(:form) { instance_double(Form, start_date: current_collection_start_date) } before do - allow(form).to receive(:start_year_2024_or_later?).and_return(false) allow(page).to receive(:subsection).and_return(subsection) allow(subsection).to receive(:form).and_return(form) end @@ -35,55 +36,24 @@ RSpec.describe Form::Lettings::Questions::ReferralSupportedHousing, type: :model expect(question).not_to be_derived(nil) end - context "with 2023/24 form" do - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, - "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, - "8" => { "value" => "Re-located through official housing mobility scheme" }, - "10" => { "value" => "Other social landlord" }, - "9" => { "value" => "Community learning disability team" }, - "14" => { "value" => "Community mental health team" }, - "15" => { "value" => "Health service" }, - "12" => { "value" => "Police, probation or prison" }, - "7" => { "value" => "Voluntary agency" }, - "13" => { "value" => "Youth offending team" }, - "17" => { "value" => "Children’s Social Care" }, - "16" => { "value" => "Other" }, - }) - end - - it "has the correct question number" do - expect(question.question_number).to eq(85) - end - end - - context "with 2024/25 form" do - let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } - - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, - "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, - "8" => { "value" => "Re-located through official housing mobility scheme" }, - "10" => { "value" => "Other social landlord" }, - "9" => { "value" => "Community learning disability team" }, - "14" => { "value" => "Community mental health team" }, - "15" => { "value" => "Health service" }, - "18" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence" }, - "19" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence" }, - "7" => { "value" => "Voluntary agency" }, - "17" => { "value" => "Children’s Social Care" }, - "16" => { "value" => "Other" }, - }) - end - - it "has the correct question number" do - expect(question.question_number).to eq(84) - end + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, + "2" => { "value" => "Tenant applied directly (no referral or nomination)" }, + "8" => { "value" => "Re-located through official housing mobility scheme" }, + "10" => { "value" => "Other social landlord" }, + "9" => { "value" => "Community learning disability team" }, + "14" => { "value" => "Community mental health team" }, + "15" => { "value" => "Health service" }, + "18" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence" }, + "19" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence" }, + "7" => { "value" => "Voluntary agency" }, + "17" => { "value" => "Children’s Social Care" }, + "16" => { "value" => "Other" }, + }) + end + + it "has the correct question number" do + expect(question.question_number).to eq(84) end end diff --git a/spec/models/form/lettings/questions/rsnvac_spec.rb b/spec/models/form/lettings/questions/rsnvac_spec.rb index 9a63f1b23..b26cae9d4 100644 --- a/spec/models/form/lettings/questions/rsnvac_spec.rb +++ b/spec/models/form/lettings/questions/rsnvac_spec.rb @@ -1,16 +1,17 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::Rsnvac, type: :model do + include CollectionTimeHelper + subject(:question) { described_class.new(question_id, question_definition, page) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } + let(:form) { instance_double(Form, start_date: current_collection_start_date) } before do - allow(form).to receive(:start_year_2024_or_later?).and_return(false) allow(page).to receive(:subsection).and_return(subsection) allow(subsection).to receive(:form).and_return(form) end @@ -31,107 +32,58 @@ RSpec.describe Form::Lettings::Questions::Rsnvac, type: :model do expect(question.derived?(nil)).to be false end - context "with 2023/24 form" do - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "13" => { - "value" => "Internal transfer", - "hint" => "Where a tenant moved from one social housing property to another property. Their landlord may be the same or may have changed.", - }, - "5" => { - "value" => "Previous tenant died with no succession", - }, - "9" => { - "value" => "Re-let to tenant who occupied same property as temporary accommodation", - }, - "14" => { - "value" => "Renewal of fixed-term tenancy", - "hint" => "To the same tenant in the same property, except if was previously used as temporary accommodation.", - }, - "19" => { - "value" => "Tenant involved in a succession downsize", - }, - "8" => { - "value" => "Tenant moved to private sector or other accommodation", - }, - "12" => { - "value" => "Tenant moved to other social housing provider", - }, - "18" => { - "value" => "Tenant moved to care home", - }, - "20" => { - "value" => "Tenant moved to long-stay hospital or similar institution", - }, - "6" => { - "value" => "Tenant abandoned property", - }, - "10" => { - "value" => "Tenant was evicted due to rent arrears", - }, - "11" => { - "value" => "Tenant was evicted due to anti-social behaviour", - }, - }) - end + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "14" => { + "value" => "Renewal of fixed-term tenancy", + "hint" => "To the same tenant in the same property, except if was previously used as temporary accommodation.", + }, + "9" => { + "value" => "Re-let to tenant who occupied same property as temporary accommodation", + }, + "13" => { + "value" => "Internal transfer", + "hint" => "Where a tenant moved from one social housing property to another property. Their landlord may be the same or may have changed.", + }, + "12" => { + "value" => "Tenant moved to other social housing provider", + }, + "8" => { + "value" => "Tenant moved to private sector or other accommodation", + }, + "18" => { + "value" => "Tenant moved to care home", + }, + "20" => { + "value" => "Tenant moved to long-stay hospital or similar institution", + }, + "5" => { + "value" => "Tenant died with no succession", + }, + "19" => { + "value" => "Tenant involved in a succession downsize", + }, + "6" => { + "value" => "Tenant abandoned property", + }, + "10" => { + "value" => "Tenant was evicted due to rent arrears", + }, + "11" => { + "value" => "Tenant was evicted due to anti-social behaviour", + }, + "21" => { + "value" => "Tenant was evicted due to both rent arrears and anti-social behaviour", + }, + "22" => { + "value" => "Any other reason", + }, + }) end context "with 2024/25 form" do let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "14" => { - "value" => "Renewal of fixed-term tenancy", - "hint" => "To the same tenant in the same property, except if was previously used as temporary accommodation.", - }, - "9" => { - "value" => "Re-let to tenant who occupied same property as temporary accommodation", - }, - "13" => { - "value" => "Internal transfer", - "hint" => "Where a tenant moved from one social housing property to another property. Their landlord may be the same or may have changed.", - }, - "12" => { - "value" => "Tenant moved to other social housing provider", - }, - "8" => { - "value" => "Tenant moved to private sector or other accommodation", - }, - "18" => { - "value" => "Tenant moved to care home", - }, - "20" => { - "value" => "Tenant moved to long-stay hospital or similar institution", - }, - "5" => { - "value" => "Tenant died with no succession", - }, - "19" => { - "value" => "Tenant involved in a succession downsize", - }, - "6" => { - "value" => "Tenant abandoned property", - }, - "10" => { - "value" => "Tenant was evicted due to rent arrears", - }, - "11" => { - "value" => "Tenant was evicted due to anti-social behaviour", - }, - "21" => { - "value" => "Tenant was evicted due to both rent arrears and anti-social behaviour", - }, - "22" => { - "value" => "Any other reason", - }, - }) - end - it "has the correct question number" do expect(question.question_number).to eq(18) end @@ -140,10 +92,6 @@ RSpec.describe Form::Lettings::Questions::Rsnvac, type: :model do context "with 2025/26 form" do let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 1)) } - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - it "has the correct question number" do expect(question.question_number).to eq(15) end diff --git a/spec/models/form/lettings/questions/starter_tenancy_type_spec.rb b/spec/models/form/lettings/questions/starter_tenancy_type_spec.rb index b6ae1ed92..790dca5df 100644 --- a/spec/models/form/lettings/questions/starter_tenancy_type_spec.rb +++ b/spec/models/form/lettings/questions/starter_tenancy_type_spec.rb @@ -1,92 +1,56 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::StarterTenancyType, type: :model do + include CollectionTimeHelper + subject(:question) { described_class.new(question_id, question_definition, page) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page, id: "starter_tenancy_type") } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } + let(:form) { instance_double(Form, start_date: current_collection_start_date) } before do allow(page).to receive(:subsection).and_return(subsection) allow(subsection).to receive(:form).and_return(form) end - context "with 2023/24 form" do - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(false) - end - - it "has the correct answer options" do - expect(question.answer_options).to eq( - { - "4" => { - "value" => "Assured Shorthold Tenancy (AST) – Fixed term", - "hint" => "Mostly housing associations provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "6" => { - "value" => "Secure – fixed term", - "hint" => "Mostly local authorities provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "2" => { - "value" => "Assured – lifetime", - }, - "7" => { - "value" => "Secure – lifetime", - }, - "5" => { - "value" => "Licence agreement", - "hint" => "Licence agreements are mostly used for Supported Housing and work on a rolling basis.", - }, - "3" => { - "value" => "Other", - }, + it "has the correct answer options" do + expect(question.answer_options).to eq( + { + "4" => { + "value" => "Assured Shorthold Tenancy (AST) – Fixed term", + "hint" => "These are mostly provided by housing associations. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", }, - ) - end + "6" => { + "value" => "Secure – fixed term", + "hint" => "These are mostly provided by local authorities. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "2" => { + "value" => "Assured – lifetime", + }, + "7" => { + "value" => "Secure – lifetime", + }, + "8" => { + "value" => "Periodic", + "hint" => "These are rolling tenancies with no fixed end date. They may have an initial fixed term and then become rolling.", + }, + "5" => { + "value" => "Licence agreement", + "hint" => "These are mostly used for Supported Housing and work on a rolling basis.", + }, + "3" => { + "value" => "Other", + }, + }, + ) end context "with 2024/25 form" do let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - - it "has the correct answer options" do - expect(question.answer_options).to eq( - { - "4" => { - "value" => "Assured Shorthold Tenancy (AST) – Fixed term", - "hint" => "These are mostly provided by housing associations. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "6" => { - "value" => "Secure – fixed term", - "hint" => "These are mostly provided by local authorities. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "2" => { - "value" => "Assured – lifetime", - }, - "7" => { - "value" => "Secure – lifetime", - }, - "8" => { - "value" => "Periodic", - "hint" => "These are rolling tenancies with no fixed end date. They may have an initial fixed term and then become rolling.", - }, - "5" => { - "value" => "Licence agreement", - "hint" => "These are mostly used for Supported Housing and work on a rolling basis.", - }, - "3" => { - "value" => "Other", - }, - }, - ) - end - it "has the correct question number" do expect(question.question_number).to eq(27) end @@ -95,10 +59,6 @@ RSpec.describe Form::Lettings::Questions::StarterTenancyType, type: :model do context "with 2025/26 form" do let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 1)) } - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - it "has the correct question number" do expect(question.question_number).to eq(28) end diff --git a/spec/models/form/lettings/questions/tenancy_type_spec.rb b/spec/models/form/lettings/questions/tenancy_type_spec.rb index 13cb5bb77..36fd277fb 100644 --- a/spec/models/form/lettings/questions/tenancy_type_spec.rb +++ b/spec/models/form/lettings/questions/tenancy_type_spec.rb @@ -1,15 +1,16 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::TenancyType, type: :model do + include CollectionTimeHelper + subject(:question) { described_class.new(nil, nil, page) } let(:page) { instance_double(Form::Page, id: "tenancy_type") } let(:subsection) { instance_double(Form::Subsection) } let(:form) { instance_double(Form, start_date:) } - let(:start_date) { Time.utc(2023, 4, 1) } + let(:start_date) { current_collection_start_date } before do - allow(form).to receive(:start_year_2024_or_later?).and_return(false) allow(page).to receive(:subsection).and_return(subsection) allow(subsection).to receive(:form).and_return(form) end @@ -30,47 +31,9 @@ RSpec.describe Form::Lettings::Questions::TenancyType, type: :model do expect(question.conditional_for).to eq({ "tenancyother" => [3] }) end - context "with 2023/24 form" do - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(false) - end - - it "has the correct answer options" do - expect(question.answer_options).to eq( - { - "4" => { - "value" => "Assured Shorthold Tenancy (AST) – Fixed term", - "hint" => "Mostly housing associations provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "6" => { - "value" => "Secure – fixed term", - "hint" => "Mostly local authorities provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", - }, - "2" => { - "value" => "Assured – lifetime", - }, - "7" => { - "value" => "Secure – lifetime", - }, - "5" => { - "value" => "Licence agreement", - "hint" => "Licence agreements are mostly used for Supported Housing and work on a rolling basis.", - }, - "3" => { - "value" => "Other", - }, - }, - ) - end - end - context "with 2024/25 form" do let(:start_date) { Time.utc(2024, 4, 1) } - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - it "has the correct answer options" do expect(question.answer_options).to eq( { @@ -111,10 +74,6 @@ RSpec.describe Form::Lettings::Questions::TenancyType, type: :model do context "with 2025/26 form" do let(:start_date) { Time.utc(2025, 4, 1) } - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - end - it "has the correct question number" do expect(question.question_number).to eq(28) end diff --git a/spec/models/form/lettings/questions/waityear_spec.rb b/spec/models/form/lettings/questions/waityear_spec.rb index 9ebf8dec1..a862dafea 100644 --- a/spec/models/form/lettings/questions/waityear_spec.rb +++ b/spec/models/form/lettings/questions/waityear_spec.rb @@ -1,15 +1,16 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::Waityear, type: :model do + include CollectionTimeHelper + subject(:question) { described_class.new(nil, question_definition, page) } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } + let(:form) { instance_double(Form, start_date: current_collection_start_date) } before do - allow(form).to receive_messages(start_year_2024_or_later?: false, start_year_2025_or_later?: false) allow(page).to receive(:subsection).and_return(subsection) allow(subsection).to receive(:form).and_return(form) end @@ -42,24 +43,9 @@ RSpec.describe Form::Lettings::Questions::Waityear, type: :model do expect(question.check_answers_card_number).to eq(0) end - context "with 2023/24 form" do - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "2" => { "value" => "Less than 1 year" }, - "7" => { "value" => "1 year but under 2 years" }, - "8" => { "value" => "2 years but under 3 years" }, - "9" => { "value" => "3 years but under 4 years" }, - "10" => { "value" => "4 years but under 5 years" }, - "5" => { "value" => "5 years or more" }, - "divider" => { "value" => true }, - "6" => { "value" => "Don’t know" }, - }) - end - end - context "with 2024/25 form" do before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) + allow(form).to receive_messages(start_year_2025_or_later?: false) end it "has the correct answer_options" do @@ -79,7 +65,7 @@ RSpec.describe Form::Lettings::Questions::Waityear, type: :model do context "with 2025/26 form" do before do - allow(form).to receive(:start_year_2025_or_later?).and_return(true) + allow(form).to receive_messages(start_year_2025_or_later?: true) end it "has the correct answer_options" do