From 2a96f80bdf6d031817cd61e653f60ae52a38ab92 Mon Sep 17 00:00:00 2001 From: Arthur Campbell Date: Thu, 23 Feb 2023 15:07:08 +0000 Subject: [PATCH] add new options to prevten question, rename question, create test files for both previous tenure questions --- .../pages/previous_housing_situation.rb | 2 +- .../previous_housing_situation_renewal.rb | 2 +- .../lettings/questions/previous_tenure.rb | 41 +++++++++ ..._renewal.rb => previous_tenure_renewal.rb} | 2 +- app/models/form/lettings/questions/prevten.rb | 87 ------------------- .../questions/previous_tenure_renewal_spec.rb | 43 +++++++++ .../questions/previous_tenure_spec.rb | 66 ++++++++++++++ 7 files changed, 153 insertions(+), 90 deletions(-) create mode 100644 app/models/form/lettings/questions/previous_tenure.rb rename app/models/form/lettings/questions/{prevten_renewal.rb => previous_tenure_renewal.rb} (87%) delete mode 100644 app/models/form/lettings/questions/prevten.rb create mode 100644 spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb create mode 100644 spec/models/form/lettings/questions/previous_tenure_spec.rb diff --git a/app/models/form/lettings/pages/previous_housing_situation.rb b/app/models/form/lettings/pages/previous_housing_situation.rb index 82bbda675..182d964df 100644 --- a/app/models/form/lettings/pages/previous_housing_situation.rb +++ b/app/models/form/lettings/pages/previous_housing_situation.rb @@ -6,6 +6,6 @@ class Form::Lettings::Pages::PreviousHousingSituation < ::Form::Page end def questions - @questions ||= [Form::Lettings::Questions::Prevten.new(nil, nil, self)] + @questions ||= [Form::Lettings::Questions::PreviousTenure.new(nil, nil, self)] end end diff --git a/app/models/form/lettings/pages/previous_housing_situation_renewal.rb b/app/models/form/lettings/pages/previous_housing_situation_renewal.rb index 7f22150bf..627be0a78 100644 --- a/app/models/form/lettings/pages/previous_housing_situation_renewal.rb +++ b/app/models/form/lettings/pages/previous_housing_situation_renewal.rb @@ -6,6 +6,6 @@ class Form::Lettings::Pages::PreviousHousingSituationRenewal < ::Form::Page end def questions - @questions ||= [Form::Lettings::Questions::PrevtenRenewal.new(nil, nil, self)] + @questions ||= [Form::Lettings::Questions::PreviousTenureRenewal.new(nil, nil, self)] end end diff --git a/app/models/form/lettings/questions/previous_tenure.rb b/app/models/form/lettings/questions/previous_tenure.rb new file mode 100644 index 000000000..f4cd085cb --- /dev/null +++ b/app/models/form/lettings/questions/previous_tenure.rb @@ -0,0 +1,41 @@ +class Form::Lettings::Questions::PreviousTenure < ::Form::Question + def initialize(id, hsh, page) + super + @id = "prevten" + @check_answer_label = "Where was the household immediately before this letting?" + @header = "Where was the household immediately before this letting?" + @type = "radio" + @check_answers_card_number = 0 + @hint_text = "This is where the household was the night before they moved." + @answer_options = ANSWER_OPTIONS + end + + ANSWER_OPTIONS = { + "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" }, + }.freeze +end diff --git a/app/models/form/lettings/questions/prevten_renewal.rb b/app/models/form/lettings/questions/previous_tenure_renewal.rb similarity index 87% rename from app/models/form/lettings/questions/prevten_renewal.rb rename to app/models/form/lettings/questions/previous_tenure_renewal.rb index e8516e85e..17a91d9f1 100644 --- a/app/models/form/lettings/questions/prevten_renewal.rb +++ b/app/models/form/lettings/questions/previous_tenure_renewal.rb @@ -1,4 +1,4 @@ -class Form::Lettings::Questions::PrevtenRenewal < ::Form::Question +class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question def initialize(id, hsh, page) super @id = "prevten" diff --git a/app/models/form/lettings/questions/prevten.rb b/app/models/form/lettings/questions/prevten.rb deleted file mode 100644 index 3d77f24bb..000000000 --- a/app/models/form/lettings/questions/prevten.rb +++ /dev/null @@ -1,87 +0,0 @@ -class Form::Lettings::Questions::Prevten < ::Form::Question - def initialize(id, hsh, page) - super - @id = "prevten" - @check_answer_label = "Where was the household immediately before this letting?" - @header = "Where was the household immediately before this letting?" - @type = "radio" - @check_answers_card_number = 0 - @hint_text = "This is where the household was the night before they moved." - @answer_options = ANSWER_OPTIONS - end - - ANSWER_OPTIONS = { - "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", - }, - "25" => { - "value" => "Any other accommodation", - }, - }.freeze -end diff --git a/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb b/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb new file mode 100644 index 000000000..59a1a2769 --- /dev/null +++ b/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb @@ -0,0 +1,43 @@ +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) } + + it "has the correct id" do + expect(question.id).to eq("prevten") + end + + it "has the correct header" do + expect(question.header).to eq("Where was the household immediately before this letting?") + end + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Where was the household immediately before this letting?") + end + + it "has the correct type" do + expect(question.type).to eq("radio") + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end + + it "has the correct hint" do + expect(question.hint_text).to eq("") + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "34" => { "value" => "Specialist retirement housing" }, + "35" => { "value" => "Extra care housing" }, + "6" => { "value" => "Other supported housing" }, + }) + end +end diff --git a/spec/models/form/lettings/questions/previous_tenure_spec.rb b/spec/models/form/lettings/questions/previous_tenure_spec.rb new file mode 100644 index 000000000..4b106601e --- /dev/null +++ b/spec/models/form/lettings/questions/previous_tenure_spec.rb @@ -0,0 +1,66 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::PreviousTenure, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has the correct id" do + expect(question.id).to eq("prevten") + end + + it "has the correct header" do + expect(question.header).to eq("Where was the household immediately before this letting?") + end + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Where was the household immediately before this letting?") + end + + it "has the correct type" do + expect(question.type).to eq("radio") + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end + + it "has the correct hint" do + expect(question.hint_text).to eq("This is where the household was the night before they moved.") + 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" }, + }) + end +end