require "rails_helper" RSpec.describe Form::Sales::Subsections::Setup, type: :model do subject(:setup) { described_class.new(subsection_id, subsection_definition, section) } let(:subsection_id) { nil } let(:subsection_definition) { nil } let(:section) { instance_double(Form::Sales::Sections::Setup, form: instance_double(Form, start_date:)) } let(:start_date) { Time.utc(2022, 4, 1) } it "has correct section" do expect(setup.section).to eq(section) end it "has the correct id" do expect(setup.id).to eq("setup") end it "has the correct label" do expect(setup.label).to eq("Set up this sales log") end context "when start year is before 2024" do before do allow(section.form).to receive(:start_year_after_2024?).and_return(false) end it "has correct pages" do expect(setup.pages.map(&:id)).to eq( %w[ owning_organisation managing_organisation created_by completion_date purchaser_code ownership_scheme shared_ownership_type discounted_ownership_type outright_ownership_type buyer_company buyer_live joint_purchase number_joint_buyers ], ) end end context "when start year is >= 2024" do before do allow(section.form).to receive(:start_year_after_2024?).and_return(true) end it "has correct pages" do expect(setup.pages.map(&:id)).to eq( %w[ owning_organisation managing_organisation created_by completion_date purchaser_code ownership_scheme shared_ownership_type discounted_ownership_type outright_ownership_type buyer_company buyer_live joint_purchase number_joint_buyers buyer_interview ], ) end end end