|
|
|
require "rails_helper"
|
|
|
|
|
|
|
|
RSpec.describe Form::Lettings::Subsections::HouseholdSituation, type: :model do
|
|
|
|
subject(:household_situation) { described_class.new(subsection_id, subsection_definition, section) }
|
|
|
|
|
|
|
|
let(:subsection_id) { nil }
|
|
|
|
let(:subsection_definition) { nil }
|
|
|
|
let(:section) { instance_double(Form::Lettings::Sections::Household) }
|
|
|
|
let(:form) { instance_double(Form) }
|
|
|
|
|
|
|
|
before do
|
|
|
|
allow(section).to receive(:form).and_return(form)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "has correct section" do
|
|
|
|
expect(household_situation.section).to eq(section)
|
|
|
|
end
|
|
|
|
|
|
|
|
context "with form year before 2024" do
|
|
|
|
before do
|
|
|
|
allow(form).to receive(:start_year_after_2024?).and_return(false)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "has correct pages" do
|
|
|
|
expect(household_situation.pages.map(&:id)).to eq(
|
|
|
|
%w[
|
|
|
|
time_lived_in_local_authority
|
|
|
|
time_on_waiting_list
|
|
|
|
reason_for_leaving_last_settled_home
|
|
|
|
reason_for_leaving_last_settled_home_renewal
|
|
|
|
previous_housing_situation
|
|
|
|
previous_housing_situation_renewal
|
|
|
|
homelessness
|
|
|
|
previous_postcode
|
|
|
|
previous_local_authority
|
|
|
|
reasonable_preference
|
|
|
|
reasonable_preference_reason
|
|
|
|
allocation_system
|
|
|
|
referral
|
|
|
|
referral_prp
|
|
|
|
referral_supported_housing
|
|
|
|
referral_supported_housing_prp
|
|
|
|
referral_value_check
|
|
|
|
],
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "with form year >= 2024" do
|
|
|
|
before do
|
|
|
|
allow(form).to receive(:start_year_after_2024?).and_return(true)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "has correct pages" do
|
|
|
|
expect(household_situation.pages.map(&:id)).to eq(
|
|
|
|
%w[
|
|
|
|
time_lived_in_local_authority
|
|
|
|
time_on_waiting_list
|
|
|
|
reason_for_leaving_last_settled_home
|
|
|
|
reason_for_leaving_last_settled_home_renewal
|
|
|
|
reasonother_value_check
|
|
|
|
previous_housing_situation
|
|
|
|
previous_housing_situation_renewal
|
|
|
|
homelessness
|
|
|
|
previous_postcode
|
|
|
|
previous_local_authority
|
|
|
|
reasonable_preference
|
|
|
|
reasonable_preference_reason
|
|
|
|
allocation_system
|
|
|
|
referral
|
|
|
|
referral_prp
|
|
|
|
referral_supported_housing
|
|
|
|
referral_supported_housing_prp
|
|
|
|
referral_value_check
|
|
|
|
],
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "has the correct id" do
|
|
|
|
expect(household_situation.id).to eq("household_situation")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "has the correct label" do
|
|
|
|
expect(household_situation.label).to eq("Household situation")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "has the correct depends_on" do
|
|
|
|
expect(household_situation.depends_on).to eq([
|
|
|
|
{
|
|
|
|
"non_location_setup_questions_completed?" => true,
|
|
|
|
},
|
|
|
|
])
|
|
|
|
end
|
|
|
|
end
|