Browse Source

CLDc-4174: update question specs

CLDC-4174-clone-q88-service-charges
Nat Dean-Lewis 1 day ago
parent
commit
d4a29a1583
  1. 50
      spec/models/form/sales/questions/has_service_charge_spec.rb
  2. 47
      spec/models/form/sales/questions/service_charge_spec.rb

50
spec/models/form/sales/questions/has_service_charge_spec.rb

@ -1,12 +1,15 @@
require "rails_helper" require "rails_helper"
RSpec.describe Form::Sales::Questions::HasServiceCharge, type: :model do RSpec.describe Form::Sales::Questions::HasServiceCharge, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) } subject(:question) { described_class.new(question_id, question_definition, page, staircasing:) }
let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 4)) }
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, id: "shared_ownership", form:)) } let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) }
let(:page) { instance_double(Form::Page, subsection:) }
let(:start_date) { Time.utc(2025, 5, 1) }
let(:staircasing) { false }
it "has correct page" do it "has correct page" do
expect(question.page).to eq(page) expect(question.page).to eq(page)
@ -46,4 +49,45 @@ RSpec.describe Form::Sales::Questions::HasServiceCharge, type: :model do
], ],
}) })
end end
context "with 2025/26 form" do
let(:start_date) { Time.utc(2025, 4, 1) }
before do
allow(subsection.form).to receive(:start_year_2025_or_later?).and_return(true)
end
context "when not staircasing" do
let(:staircasing) { false }
it "has the correct question number" do
expect(question.question_number).to eq(88)
end
end
end
context "with 2026/27 form" do
let(:start_date) { Time.utc(2026, 4, 1) }
before do
allow(subsection.form).to receive(:start_year_2026_or_later?).and_return(true)
end
context "when staircasing" do
let(:staircasing) { true }
it "has the correct question number" do
expect(question.question_number).to eq(0)
end
end
context "when not staircasing" do
let(:staircasing) { false }
it "has the correct question number" do
expect(question.question_number).to eq(0)
end
end
end
end end

47
spec/models/form/sales/questions/service_charge_spec.rb

@ -1,11 +1,14 @@
require "rails_helper" require "rails_helper"
RSpec.describe Form::Sales::Questions::ServiceCharge, type: :model do RSpec.describe Form::Sales::Questions::ServiceCharge, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) } subject(:question) { described_class.new(question_id, question_definition, page, staircasing:) }
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)))) } let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) }
let(:page) { instance_double(Form::Page, subsection:) }
let(:start_date) { Time.utc(2023, 4, 1) }
let(:staircasing) { false }
it "has correct page" do it "has correct page" do
expect(question.page).to eq(page) expect(question.page).to eq(page)
@ -34,4 +37,44 @@ RSpec.describe Form::Sales::Questions::ServiceCharge, type: :model do
it "has the correct prefix" do it "has the correct prefix" do
expect(question.prefix).to eq("£") expect(question.prefix).to eq("£")
end end
context "with 2025/26 form" do
let(:start_date) { Time.utc(2025, 4, 1) }
before do
allow(subsection.form).to receive(:start_year_2025_or_later?).and_return(true)
end
context "when not staircasing" do
let(:staircasing) { false }
it "has the correct question number" do
expect(question.question_number).to eq(88)
end
end
end
context "with 2026/27 form" do
let(:start_date) { Time.utc(2026, 4, 1) }
before do
allow(subsection.form).to receive(:start_year_2026_or_later?).and_return(true)
end
context "when staircasing" do
let(:staircasing) { true }
it "has the correct question number" do
expect(question.question_number).to eq(0)
end
end
context "when not staircasing" do
let(:staircasing) { false }
it "has the correct question number" do
expect(question.question_number).to eq(0)
end
end
end
end end

Loading…
Cancel
Save