Browse Source

CLDC-1815 new option for sheltered accommodation question (#1383)

* add a new option to sheltered accommodation question
rename page for readability
create test files for relevant page and question'

* correct lint error
CLDC-1917-allow-23-24-form^2
Arthur Campbell 2 years ago committed by GitHub
parent
commit
04b522d9b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      app/models/form/lettings/pages/sheltered_accommodation.rb
  2. 1
      app/models/form/lettings/questions/sheltered.rb
  3. 2
      app/models/form/lettings/subsections/tenancy_information.rb
  4. 31
      spec/models/form/lettings/pages/sheltered_accommodation_spec.rb
  5. 46
      spec/models/form/lettings/questions/sheltered_spec.rb
  6. 2
      spec/models/form/lettings/subsections/tenancy_information_spec.rb

6
app/models/form/lettings/pages/shelteredaccom.rb → 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) def initialize(id, hsh, subsection)
super super
@id = "shelteredaccom" @id = "sheltered_accommodation"
@depends_on = [{ "needstype" => 2 }] @depends_on = [{ "is_supported_housing?" => true }]
end end
def questions def questions

1
app/models/form/lettings/questions/sheltered.rb

@ -13,6 +13,7 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question
ANSWER_OPTIONS = { ANSWER_OPTIONS = {
"2" => { "value" => "Yes – extra care housing" }, "2" => { "value" => "Yes – extra care housing" },
"1" => { "value" => "Yes – specialist retirement housing" }, "1" => { "value" => "Yes – specialist retirement housing" },
"5" => { "value" => "Yes – sheltered housing for adults aged under 55 years" },
"3" => { "value" => "No" }, "3" => { "value" => "No" },
"divider" => { "value" => true }, "divider" => { "value" => true },
"4" => { "value" => "Don’t know" }, "4" => { "value" => "Don’t know" },

2
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::TenancyType.new(nil, nil, self),
Form::Lettings::Pages::StarterTenancyType.new(nil, nil, self), Form::Lettings::Pages::StarterTenancyType.new(nil, nil, self),
Form::Lettings::Pages::TenancyLength.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 ].compact
end end
end end

31
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

46
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

2
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 it "has correct pages" do
expect(tenancy_information.pages.map(&:id)).to eq( 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 end

Loading…
Cancel
Save