diff --git a/app/models/form/lettings/pages/shelteredaccom.rb b/app/models/form/lettings/pages/sheltered_accommodation.rb similarity index 50% rename from app/models/form/lettings/pages/shelteredaccom.rb rename to app/models/form/lettings/pages/sheltered_accommodation.rb index df19b8c99..096ba61e5 100644 --- a/app/models/form/lettings/pages/shelteredaccom.rb +++ b/app/models/form/lettings/pages/sheltered_accommodation.rb @@ -1,8 +1,8 @@ -class Form::Lettings::Pages::Shelteredaccom < ::Form::Page +class Form::Lettings::Pages::ShelteredAccommodation < ::Form::Page def initialize(id, hsh, subsection) super - @id = "shelteredaccom" - @depends_on = [{ "needstype" => 2 }] + @id = "sheltered_accommodation" + @depends_on = [{ "is_supported_housing?" => true }] end def questions diff --git a/app/models/form/lettings/questions/sheltered.rb b/app/models/form/lettings/questions/sheltered.rb index 47899e261..a5b289ffc 100644 --- a/app/models/form/lettings/questions/sheltered.rb +++ b/app/models/form/lettings/questions/sheltered.rb @@ -13,6 +13,7 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question ANSWER_OPTIONS = { "2" => { "value" => "Yes – extra care housing" }, "1" => { "value" => "Yes – specialist retirement housing" }, + "5" => { "value" => "Yes – sheltered housing for adults aged under 55 years" }, "3" => { "value" => "No" }, "divider" => { "value" => true }, "4" => { "value" => "Don’t know" }, diff --git a/app/models/form/lettings/subsections/tenancy_information.rb b/app/models/form/lettings/subsections/tenancy_information.rb index 5f2af5215..be8e4fdce 100644 --- a/app/models/form/lettings/subsections/tenancy_information.rb +++ b/app/models/form/lettings/subsections/tenancy_information.rb @@ -13,7 +13,7 @@ class Form::Lettings::Subsections::TenancyInformation < ::Form::Subsection Form::Lettings::Pages::TenancyType.new(nil, nil, self), Form::Lettings::Pages::StarterTenancyType.new(nil, nil, self), Form::Lettings::Pages::TenancyLength.new(nil, nil, self), - Form::Lettings::Pages::Shelteredaccom.new(nil, nil, self), + Form::Lettings::Pages::ShelteredAccommodation.new(nil, nil, self), ].compact end end diff --git a/spec/models/form/lettings/pages/sheltered_accommodation_spec.rb b/spec/models/form/lettings/pages/sheltered_accommodation_spec.rb new file mode 100644 index 000000000..7d403f9e3 --- /dev/null +++ b/spec/models/form/lettings/pages/sheltered_accommodation_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::ShelteredAccommodation, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[sheltered]) + end + + it "has the correct id" do + expect(page.id).to eq("sheltered_accommodation") + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq([{ "is_supported_housing?" => true }]) + end +end diff --git a/spec/models/form/lettings/questions/sheltered_spec.rb b/spec/models/form/lettings/questions/sheltered_spec.rb new file mode 100644 index 000000000..5b9b3c743 --- /dev/null +++ b/spec/models/form/lettings/questions/sheltered_spec.rb @@ -0,0 +1,46 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::Sheltered, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq page + end + + it "has the correct id" do + expect(question.id).to eq "sheltered" + end + + it "has the correct header" do + expect(question.header).to eq "Is this letting in sheltered accommodation?" + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq "Is this letting in sheltered accommodation?" + end + + it "has the correct type" do + expect(question.type).to eq "radio" + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq "" + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "2" => { "value" => "Yes – extra care housing" }, + "1" => { "value" => "Yes – specialist retirement housing" }, + "5" => { "value" => "Yes – sheltered housing for adults aged under 55 years" }, + "3" => { "value" => "No" }, + "divider" => { "value" => true }, + "4" => { "value" => "Don’t know" }, + }) + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end +end diff --git a/spec/models/form/lettings/subsections/tenancy_information_spec.rb b/spec/models/form/lettings/subsections/tenancy_information_spec.rb index 7dd3e3a10..475ea209c 100644 --- a/spec/models/form/lettings/subsections/tenancy_information_spec.rb +++ b/spec/models/form/lettings/subsections/tenancy_information_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Form::Lettings::Subsections::TenancyInformation, type: :model do it "has correct pages" do expect(tenancy_information.pages.map(&:id)).to eq( - %w[joint starter_tenancy tenancy_type starter_tenancy_type tenancy_length shelteredaccom], + %w[joint starter_tenancy tenancy_type starter_tenancy_type tenancy_length sheltered_accommodation], ) end