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