Browse Source

Merge branch 'main' into CLDC-4141-lettings-sab-question

pull/3171/head
Nat Dean-Lewis 1 week ago
parent
commit
48f550b355
  1. 38
      app/models/form/lettings/questions/previous_tenure.rb
  2. 2
      config/locales/forms/2026/lettings/income_and_benefits.en.yml
  3. 8881
      config/rent_range_data/2026.csv
  4. 2
      spec/models/form/lettings/pages/previous_housing_situation_spec.rb
  5. 52
      spec/models/form/lettings/questions/previous_tenure_spec.rb

38
app/models/form/lettings/questions/previous_tenure.rb

@ -5,7 +5,13 @@ class Form::Lettings::Questions::PreviousTenure < ::Form::Question
@copy_key = "lettings.household_situation.prevten.not_renewal"
@type = "radio"
@check_answers_card_number = 0
@answer_options = form.start_year_2025_or_later? ? ANSWER_OPTIONS_2025 : ANSWER_OPTIONS
@answer_options = if form.start_year_2026_or_later?
ANSWER_OPTIONS_2026_OR_LATER
elsif form.start_date.year == 2025
ANSWER_OPTIONS_2025
else
ANSWER_OPTIONS
end
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end
@ -67,5 +73,35 @@ class Form::Lettings::Questions::PreviousTenure < ::Form::Question
"25" => { "value" => "Any other accommodation" },
}.freeze
ANSWER_OPTIONS_2026_OR_LATER = {
"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" },
"40" => { "value" => "Other general needs" },
"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 or family (long-term)" },
"39" => { "value" => "Sofa surfing (moving regularly between family or friends, no permanent bed)" },
"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" },
"37" => { "value" => "Host family or similar refugee accommodation" },
"23" => { "value" => "Mobile home or caravan" },
"21" => { "value" => "Refuge" },
"9" => { "value" => "Residential care home" },
"4" => { "value" => "Tied housing or rented with job" },
"25" => { "value" => "Any other accommodation" },
}.freeze
QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77 }.freeze
end

2
config/locales/forms/2026/lettings/income_and_benefits.en.yml

@ -48,7 +48,7 @@ en:
page_header: ""
check_answer_label: "Frequency of household rent and charges"
check_answer_prompt: ""
hint_text: "Select how often the household is charged. This may be different to how often they pay."
hint_text: "Select how often the household is charged. This may be different to how often they pay.<br><br>Only options relevant to your organisation are shown below. To change these, go to the 'About your organisation' page or contact our helpdesk using the link at the bottom of this page."
question_text: "How often does the household pay rent and other charges?"
care_home:

8881
config/rent_range_data/2026.csv

File diff suppressed because it is too large Load Diff

2
spec/models/form/lettings/pages/previous_housing_situation_spec.rb

@ -3,7 +3,7 @@ require "rails_helper"
RSpec.describe Form::Lettings::Pages::PreviousHousingSituation, 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), start_year_2025_or_later?: false)) }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2025_or_later?: false, start_year_2026_or_later?: false)) }
it "has correct subsection" do
expect(page.subsection).to eq(subsection)

52
spec/models/form/lettings/questions/previous_tenure_spec.rb

@ -1,9 +1,14 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::PreviousTenure, type: :model do
include CollectionTimeHelper
subject(:question) { described_class.new(nil, nil, page) }
let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2025_or_later?: false) }
let(:year) { current_collection_start_year }
let(:start_year_2025_or_later?) { false }
let(:start_year_2026_or_later?) { false }
let(:form) { instance_double(Form, start_date: collection_start_date_for_year(year), start_year_2025_or_later?: start_year_2025_or_later?, start_year_2026_or_later?: start_year_2026_or_later?) }
let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form:)) }
it "has the correct id" do
@ -22,7 +27,9 @@ RSpec.describe Form::Lettings::Questions::PreviousTenure, type: :model do
expect(question.derived?(nil)).to be false
end
context "with start year before 2025" do
context "with 2024 logs" do
let(:year) { 2024 }
it "has the correct answer_options" do
expect(question.answer_options).to eq({
"30" => { "value" => "Fixed-term local authority general needs tenancy" },
@ -56,7 +63,45 @@ RSpec.describe Form::Lettings::Questions::PreviousTenure, type: :model do
end
context "with 2025 logs" do
let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 1), start_year_2025_or_later?: true) }
let(:year) { 2025 }
let(:start_year_2025_or_later?) { true }
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" },
"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 or family (long-term)" },
"39" => { "value" => "Sofa surfing (moving regularly between family or friends, no permanent bed)" },
"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" },
"37" => { "value" => "Host family or similar refugee accommodation" },
"25" => { "value" => "Any other accommodation" },
})
end
end
context "with 2026 logs" do
let(:year) { 2026 }
let(:start_year_2025_or_later?) { true }
let(:start_year_2026_or_later?) { true }
it "has the correct answer_options" do
expect(question.answer_options).to eq({
@ -64,6 +109,7 @@ 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" },
"40" => { "value" => "Other general needs" },
"35" => { "value" => "Extra care housing" },
"38" => { "value" => "Older people’s housing for tenants with low support needs" },
"6" => { "value" => "Other supported housing" },

Loading…
Cancel
Save