Browse Source

Update 2024 staircase test and add 2025 test

pull/2751/head
Manny Dinssa 1 year ago
parent
commit
3d4e360e7e
  1. 2
      app/models/form/sales/questions/staircase.rb
  2. 66
      spec/models/form/sales/questions/staircase_spec.rb

2
app/models/form/sales/questions/staircase.rb

@ -2,7 +2,7 @@ class Form::Sales::Questions::Staircase < ::Form::Question
def initialize(id, hsh, page) def initialize(id, hsh, page)
super super
@id = "staircase" @id = "staircase"
@copy_key = "sales.#{subsection.id}.staircasing" @copy_key = "sales.#{page.subsection.id}.staircasing"
@type = "radio" @type = "radio"
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end end

66
spec/models/form/sales/questions/staircase_spec.rb

@ -5,37 +5,55 @@ RSpec.describe Form::Sales::Questions::Staircase, type: :model do
let(:question_id) { nil } let(:question_id) { nil }
let(:question_definition) { nil } let(:question_definition) { nil }
let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)))) }
before do context "when start year is 2024" do
allow(page.subsection.form).to receive(:start_year_2025_or_later?).and_return(false) let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)), id: "sale_information" )) }
end
it "has correct page" do before do
expect(question.page).to eq(page) allow(page.subsection.form).to receive(:start_year_2025_or_later?).and_return(false)
end end
it "has the correct id" do it "has correct page" do
expect(question.id).to eq("staircase") expect(question.page).to eq(page)
end end
it "has the correct type" do it "has the correct id" do
expect(question.type).to eq("radio") expect(question.id).to eq("staircase")
end end
it "is not marked as derived" do it "has the correct type" do
expect(question.derived?(nil)).to be false expect(question.type).to eq("radio")
end end
it "has the correct answer_options" do it "is not marked as derived" do
expect(question.answer_options).to eq({ expect(question.derived?(nil)).to be false
"1" => { "value" => "Yes" }, end
"2" => { "value" => "No" },
"3" => { "value" => "Don’t know" }, 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 end
it "has correct conditional for" do context "when start year is 2025" do
expect(question.conditional_for).to eq(nil) let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)), id: "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
end end

Loading…
Cancel
Save