From 3d4e360e7ee1dd9fa4aed9585f02b40e8adeb011 Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Tue, 12 Nov 2024 10:35:22 +0000 Subject: [PATCH] Update 2024 staircase test and add 2025 test --- app/models/form/sales/questions/staircase.rb | 2 +- .../form/sales/questions/staircase_spec.rb | 66 ++++++++++++------- 2 files changed, 43 insertions(+), 25 deletions(-) diff --git a/app/models/form/sales/questions/staircase.rb b/app/models/form/sales/questions/staircase.rb index 371f3ebb5..6c98397ff 100644 --- a/app/models/form/sales/questions/staircase.rb +++ b/app/models/form/sales/questions/staircase.rb @@ -2,7 +2,7 @@ class Form::Sales::Questions::Staircase < ::Form::Question def initialize(id, hsh, page) super @id = "staircase" - @copy_key = "sales.#{subsection.id}.staircasing" + @copy_key = "sales.#{page.subsection.id}.staircasing" @type = "radio" @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/spec/models/form/sales/questions/staircase_spec.rb b/spec/models/form/sales/questions/staircase_spec.rb index e38506a01..3a96ced99 100644 --- a/spec/models/form/sales/questions/staircase_spec.rb +++ b/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_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 - allow(page.subsection.form).to receive(:start_year_2025_or_later?).and_return(false) - end + 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(2023, 4, 1)), id: "sale_information" )) } - it "has correct page" do - expect(question.page).to eq(page) - end + before do + allow(page.subsection.form).to receive(:start_year_2025_or_later?).and_return(false) + end - it "has the correct id" do - expect(question.id).to eq("staircase") - end + it "has correct page" do + expect(question.page).to eq(page) + end - it "has the correct type" do - expect(question.type).to eq("radio") - end + it "has the correct id" do + expect(question.id).to eq("staircase") + end - it "is not marked as derived" do - expect(question.derived?(nil)).to be false - end + it "has the correct type" do + expect(question.type).to eq("radio") + 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" }, - }) + 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 - it "has correct conditional for" do - expect(question.conditional_for).to eq(nil) + 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(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