require "rails_helper" RSpec.describe Form::Sales::Questions::Staircase, type: :model do subject(:question) { described_class.new(question_id, question_definition, page) } let(:question_id) { nil } let(:question_definition) { nil } context "when start year is 2024" do let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1)), id: "shared_ownership_scheme", copy_key: "sale_information")) } before do allow(page.subsection.form).to receive(:start_year_2025_or_later?).and_return(false) end it "has correct page" do expect(question.page).to eq(page) end it "has the correct id" do expect(question.id).to eq("staircase") end it "has the correct type" do expect(question.type).to eq("radio") end it "is not marked as derived" do expect(question.derived?(nil)).to be false end it "has the correct answer_options" do expect(question.answer_options).to eq({ "1" => { "value" => "Yes" }, "2" => { "value" => "No" }, "3" => { "value" => "Don’t know" }, }) end it "has correct conditional for" do expect(question.conditional_for).to eq(nil) end end context "when start year is 2025" do let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1)), id: "setup", copy_key: "setup")) } before do allow(page.subsection.form).to receive(:start_year_2025_or_later?).and_return(true) end it "has the correct answer_options" do expect(question.answer_options).to eq({ "1" => { "value" => "Yes" }, "2" => { "value" => "No" }, }) end end end