diff --git a/spec/models/form/sales/pages/buyer1_gender_same_as_sex_spec.rb b/spec/models/form/sales/pages/buyer1_gender_same_as_sex_spec.rb index f0bba9e4e..f5b192cee 100644 --- a/spec/models/form/sales/pages/buyer1_gender_same_as_sex_spec.rb +++ b/spec/models/form/sales/pages/buyer1_gender_same_as_sex_spec.rb @@ -7,7 +7,7 @@ RSpec.describe Form::Sales::Pages::Buyer1GenderSameAsSex, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_date)) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_date, person_question_count: 4)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/buyer2_gender_same_as_sex_spec.rb b/spec/models/form/sales/pages/buyer2_gender_same_as_sex_spec.rb index 1bcc90129..787647364 100644 --- a/spec/models/form/sales/pages/buyer2_gender_same_as_sex_spec.rb +++ b/spec/models/form/sales/pages/buyer2_gender_same_as_sex_spec.rb @@ -7,7 +7,7 @@ RSpec.describe Form::Sales::Pages::Buyer2GenderSameAsSex, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_date)) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_date, person_question_count: 4)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/deposit_spec.rb b/spec/models/form/sales/pages/deposit_spec.rb index acb6556a8..c967c7bd8 100644 --- a/spec/models/form/sales/pages/deposit_spec.rb +++ b/spec/models/form/sales/pages/deposit_spec.rb @@ -5,8 +5,8 @@ RSpec.describe Form::Sales::Pages::Deposit, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, enabled?: true, depends_on: true) } - let(:form) { instance_double(Form, start_year_2024_or_later?: false, start_date: Time.zone.local(2023, 4, 1), depends_on_met: true) } + let(:subsection) { instance_double(Form::Subsection, enabled?: true, depends_on: true, id: "shared_ownership_initial_purchase") } + let(:form) { instance_double(Form, start_year_2024_or_later?: false, start_date: Time.zone.local(2023, 4, 1), depends_on_met: true, start_year_2026_or_later?: false) } let(:optional) { false } before do diff --git a/spec/models/form/sales/pages/extra_borrowing_spec.rb b/spec/models/form/sales/pages/extra_borrowing_spec.rb index 3bbdfb5a5..01ebf856b 100644 --- a/spec/models/form/sales/pages/extra_borrowing_spec.rb +++ b/spec/models/form/sales/pages/extra_borrowing_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Pages::ExtraBorrowing, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/leasehold_charges_spec.rb b/spec/models/form/sales/pages/leasehold_charges_spec.rb index 2f2cfba17..cf659c003 100644 --- a/spec/models/form/sales/pages/leasehold_charges_spec.rb +++ b/spec/models/form/sales/pages/leasehold_charges_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Pages::LeaseholdCharges, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/mortgage_amount_spec.rb b/spec/models/form/sales/pages/mortgage_amount_spec.rb index 4d7a0944a..8127dfb2d 100644 --- a/spec/models/form/sales/pages/mortgage_amount_spec.rb +++ b/spec/models/form/sales/pages/mortgage_amount_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Pages::MortgageAmount, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/mortgage_length_spec.rb b/spec/models/form/sales/pages/mortgage_length_spec.rb index 4fdf9b880..6387e1a17 100644 --- a/spec/models/form/sales/pages/mortgage_length_spec.rb +++ b/spec/models/form/sales/pages/mortgage_length_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Pages::MortgageLength, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/person_age_spec.rb b/spec/models/form/sales/pages/person_age_spec.rb index 0cd79bd02..a9621dce1 100644 --- a/spec/models/form/sales/pages/person_age_spec.rb +++ b/spec/models/form/sales/pages/person_age_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do let(:page_id) { "person_1_age" } let(:page_definition) { nil } - let(: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: Time.zone.local(2023, 4, 1), person_question_count: 4)) } let(:person_index) { 1 } it "has correct subsection" do diff --git a/spec/models/form/sales/pages/person_gender_identity_spec.rb b/spec/models/form/sales/pages/person_gender_identity_spec.rb index 73cb734af..2102a41b7 100644 --- a/spec/models/form/sales/pages/person_gender_identity_spec.rb +++ b/spec/models/form/sales/pages/person_gender_identity_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Sales::Pages::PersonGenderIdentity, type: :model do subject(:page) { described_class.new(page_id, page_definition, subsection, person_index:) } let(:page_definition) { nil } - let(: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: Time.zone.local(2023, 4, 1), person_question_count: 4)) } let(:person_index) { 1 } let(:page_id) { "person_2_gender_identity" } diff --git a/spec/models/form/sales/pages/person_gender_same_as_sex_spec.rb b/spec/models/form/sales/pages/person_gender_same_as_sex_spec.rb index da8113af0..e020b6d28 100644 --- a/spec/models/form/sales/pages/person_gender_same_as_sex_spec.rb +++ b/spec/models/form/sales/pages/person_gender_same_as_sex_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Form::Sales::Pages::PersonGenderSameAsSex, type: :model do subject(:page) { described_class.new(page_id, page_definition, subsection, person_index:) } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_date)) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_date, person_question_count: 4)) } let(:person_index) { 2 } let(:page_id) { "person_2_gender_same_as_sex" } diff --git a/spec/models/form/sales/pages/person_relationship_to_buyer1_spec.rb b/spec/models/form/sales/pages/person_relationship_to_buyer1_spec.rb index aeb196337..88f7ba88f 100644 --- a/spec/models/form/sales/pages/person_relationship_to_buyer1_spec.rb +++ b/spec/models/form/sales/pages/person_relationship_to_buyer1_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Sales::Pages::PersonRelationshipToBuyer1, type: :model do subject(:page) { described_class.new(page_id, page_definition, subsection, person_index:) } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2024_or_later?: false)) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2024_or_later?: false, person_question_count: 4)) } let(:person_index) { 1 } let(:page_id) { "person_1_relationship_to_buyer_1" } diff --git a/spec/models/form/sales/pages/person_relationship_to_buyer1_yes_no_spec.rb b/spec/models/form/sales/pages/person_relationship_to_buyer1_yes_no_spec.rb index a8215a0ba..12bb0da7c 100644 --- a/spec/models/form/sales/pages/person_relationship_to_buyer1_yes_no_spec.rb +++ b/spec/models/form/sales/pages/person_relationship_to_buyer1_yes_no_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Sales::Pages::PersonRelationshipToBuyer1YesNo, type: :model subject(:page) { described_class.new(page_id, page_definition, subsection, person_index:) } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1), person_question_count: 4)) } let(:person_index) { 1 } let(:page_id) { "person_1_relationship_to_buyer_1" } diff --git a/spec/models/form/sales/pages/person_sex_registered_at_birth_spec.rb b/spec/models/form/sales/pages/person_sex_registered_at_birth_spec.rb index fa116818c..33f4f9e72 100644 --- a/spec/models/form/sales/pages/person_sex_registered_at_birth_spec.rb +++ b/spec/models/form/sales/pages/person_sex_registered_at_birth_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Sales::Pages::PersonSexRegisteredAtBirth, type: :model do subject(:page) { described_class.new(page_id, page_definition, subsection, person_index:) } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2026, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2026, 4, 1), person_question_count: 4)) } let(:person_index) { 1 } let(:page_id) { "person_2_sex_registered_at_birth" } diff --git a/spec/models/form/sales/pages/person_working_situation_spec.rb b/spec/models/form/sales/pages/person_working_situation_spec.rb index 91d23f34f..131768b78 100644 --- a/spec/models/form/sales/pages/person_working_situation_spec.rb +++ b/spec/models/form/sales/pages/person_working_situation_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Sales::Pages::PersonWorkingSituation, type: :model do subject(:page) { described_class.new(page_id, page_definition, subsection, person_index:) } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2025_or_later?: false)) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2025_or_later?: false, person_question_count: 4)) } let(:person_index) { 2 } let(:page_id) { "person_2_working_situation" } diff --git a/spec/models/form/sales/pages/purchase_price_outright_ownership_spec.rb b/spec/models/form/sales/pages/purchase_price_outright_ownership_spec.rb index 27ab0b422..e26221554 100644 --- a/spec/models/form/sales/pages/purchase_price_outright_ownership_spec.rb +++ b/spec/models/form/sales/pages/purchase_price_outright_ownership_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Pages::PurchasePriceOutrightOwnership, type: :model let(:page_id) { "purchase_price" } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, id: "discounted_ownership_scheme", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/purchase_price_spec.rb b/spec/models/form/sales/pages/purchase_price_spec.rb index ad857ee9f..8ceb58f4a 100644 --- a/spec/models/form/sales/pages/purchase_price_spec.rb +++ b/spec/models/form/sales/pages/purchase_price_spec.rb @@ -8,7 +8,7 @@ RSpec.describe Form::Sales::Pages::PurchasePrice, type: :model do let(:subsection) { instance_double(Form::Subsection) } before do - allow(subsection).to receive(:form).and_return(instance_double(Form, start_year_2024_or_later?: false, start_date: Time.zone.local(2023, 4, 1))) + allow(subsection).to receive_messages(form: instance_double(Form, start_year_2024_or_later?: false, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false), id: "discounted_ownership_scheme") end it "has correct subsection" do diff --git a/spec/models/form/sales/pages/service_charge_spec.rb b/spec/models/form/sales/pages/service_charge_spec.rb index 73fd4cdf8..0c1bf60c6 100644 --- a/spec/models/form/sales/pages/service_charge_spec.rb +++ b/spec/models/form/sales/pages/service_charge_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Pages::ServiceCharge, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/service_charge_staircasing_spec.rb b/spec/models/form/sales/pages/service_charge_staircasing_spec.rb index a29df7b82..aaf453b8c 100644 --- a/spec/models/form/sales/pages/service_charge_staircasing_spec.rb +++ b/spec/models/form/sales/pages/service_charge_staircasing_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Pages::ServiceChargeStaircasing, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2026, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_staircasing_transaction", form: instance_double(Form, start_date: Time.zone.local(2026, 4, 1), start_year_2026_or_later?: true)) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/questions/deposit_amount_spec.rb b/spec/models/form/sales/questions/deposit_amount_spec.rb index 6dd019b67..5256648b3 100644 --- a/spec/models/form/sales/questions/deposit_amount_spec.rb +++ b/spec/models/form/sales/questions/deposit_amount_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Form::Sales::Questions::DepositAmount, type: :model do let(:optional) { false } 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)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false))) } context "when the ownership type is shared" do let(:log) { build(:sales_log, :completed, ownershipsch: 1, mortgageused: 2) } diff --git a/spec/models/form/sales/questions/extra_borrowing_spec.rb b/spec/models/form/sales/questions/extra_borrowing_spec.rb index 935140914..1cb1e38d9 100644 --- a/spec/models/form/sales/questions/extra_borrowing_spec.rb +++ b/spec/models/form/sales/questions/extra_borrowing_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::ExtraBorrowing, 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)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false))) } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/sales/questions/gender_description_spec.rb b/spec/models/form/sales/questions/gender_description_spec.rb index e8ae2ce83..70f53100c 100644 --- a/spec/models/form/sales/questions/gender_description_spec.rb +++ b/spec/models/form/sales/questions/gender_description_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Form::Sales::Questions::GenderDescription, type: :model do let(:page) { instance_double(Form::Page) } let(:person_index) { 2 } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: current_collection_start_date) } + let(:form) { instance_double(Form, start_date: current_collection_start_date, person_question_count: 4) } before do allow(page).to receive(:subsection).and_return(subsection) diff --git a/spec/models/form/sales/questions/gender_same_as_sex_spec.rb b/spec/models/form/sales/questions/gender_same_as_sex_spec.rb index 61a5c5820..764aea055 100644 --- a/spec/models/form/sales/questions/gender_same_as_sex_spec.rb +++ b/spec/models/form/sales/questions/gender_same_as_sex_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Form::Sales::Questions::GenderSameAsSex, type: :model do let(:page) { instance_double(Form::Page) } let(:person_index) { 2 } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: current_collection_start_date) } + let(:form) { instance_double(Form, start_date: current_collection_start_date, person_question_count: 4) } before do allow(page).to receive(:subsection).and_return(subsection) diff --git a/spec/models/form/sales/questions/has_leasehold_charges_spec.rb b/spec/models/form/sales/questions/has_leasehold_charges_spec.rb index 9d518dfdc..139e04cdf 100644 --- a/spec/models/form/sales/questions/has_leasehold_charges_spec.rb +++ b/spec/models/form/sales/questions/has_leasehold_charges_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::HasLeaseholdCharges, type: :model do subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 4)) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 4), start_year_2026_or_later?: false) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership", form:)) } diff --git a/spec/models/form/sales/questions/has_service_charge_spec.rb b/spec/models/form/sales/questions/has_service_charge_spec.rb index d64609bb0..c795b44d9 100644 --- a/spec/models/form/sales/questions/has_service_charge_spec.rb +++ b/spec/models/form/sales/questions/has_service_charge_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::HasServiceCharge, type: :model do let(:question_id) { nil } let(:question_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date:, start_year_2026_or_later?: false)) } let(:page) { instance_double(Form::Page, subsection:) } let(:start_date) { Time.utc(2025, 5, 1) } let(:staircasing) { false } @@ -67,24 +67,23 @@ RSpec.describe Form::Sales::Questions::HasServiceCharge, type: :model do 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 + let(:subsection) { instance_double(Form::Subsection, id: subsection_id, form: instance_double(Form, start_date:, start_year_2026_or_later?: true)) } context "when staircasing" do let(:staircasing) { true } + let(:subsection_id) { "shared_ownership_staircasing_transaction" } it "has the correct question number" do - expect(question.question_number).to eq(0) + expect(question.question_number).to eq(110) end end context "when not staircasing" do let(:staircasing) { false } + let(:subsection_id) { "shared_ownership_initial_purchase" } it "has the correct question number" do - expect(question.question_number).to eq(0) + expect(question.question_number).to eq(96) end end end diff --git a/spec/models/form/sales/questions/has_service_charges_changed_spec.rb b/spec/models/form/sales/questions/has_service_charges_changed_spec.rb index e345abe2c..e38f316ab 100644 --- a/spec/models/form/sales/questions/has_service_charges_changed_spec.rb +++ b/spec/models/form/sales/questions/has_service_charges_changed_spec.rb @@ -7,7 +7,7 @@ RSpec.describe Form::Sales::Questions::HasServiceChargesChanged, type: :model do let(:question_id) { nil } let(:question_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_staircasing_transaction", form: instance_double(Form, start_date:, start_year_2026_or_later?: true)) } let(:page) { instance_double(Form::Page, subsection:) } let(:start_date) { collection_start_date_for_year(2026) } @@ -51,6 +51,6 @@ RSpec.describe Form::Sales::Questions::HasServiceChargesChanged, type: :model do end it "has the correct question number" do - expect(question.question_number).to eq(0) + expect(question.question_number).to eq(113) end end diff --git a/spec/models/form/sales/questions/leasehold_charges_spec.rb b/spec/models/form/sales/questions/leasehold_charges_spec.rb index 35c2dd589..88819ffee 100644 --- a/spec/models/form/sales/questions/leasehold_charges_spec.rb +++ b/spec/models/form/sales/questions/leasehold_charges_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::LeaseholdCharges, 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)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false))) } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/sales/questions/living_before_purchase_spec.rb b/spec/models/form/sales/questions/living_before_purchase_spec.rb index 9ac76887a..1bec2c0a3 100644 --- a/spec/models/form/sales/questions/living_before_purchase_spec.rb +++ b/spec/models/form/sales/questions/living_before_purchase_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::LivingBeforePurchase, 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)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false))) } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/sales/questions/living_before_purchase_years_spec.rb b/spec/models/form/sales/questions/living_before_purchase_years_spec.rb index ddf5abd8f..e16a70518 100644 --- a/spec/models/form/sales/questions/living_before_purchase_years_spec.rb +++ b/spec/models/form/sales/questions/living_before_purchase_years_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Form::Sales::Questions::LivingBeforePurchaseYears, type: :model d let(:question_id) { nil } let(:question_definition) { nil } let(:start_date) { Time.utc(2024, 2, 8) } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date:, start_year_2026_or_later?: false)) } let(:page) { instance_double(Form::Page, subsection:) } context "when 2022" do diff --git a/spec/models/form/sales/questions/mortgage_amount_spec.rb b/spec/models/form/sales/questions/mortgage_amount_spec.rb index 9d5e68804..12da4bc1f 100644 --- a/spec/models/form/sales/questions/mortgage_amount_spec.rb +++ b/spec/models/form/sales/questions/mortgage_amount_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::MortgageAmount, 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)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false))) } it "has correct page" do expect(question.page).to be(page) diff --git a/spec/models/form/sales/questions/mortgage_length_spec.rb b/spec/models/form/sales/questions/mortgage_length_spec.rb index 90c0ccab5..51fbdc128 100644 --- a/spec/models/form/sales/questions/mortgage_length_spec.rb +++ b/spec/models/form/sales/questions/mortgage_length_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::MortgageLength, 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)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false))) } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/sales/questions/mortgageused_spec.rb b/spec/models/form/sales/questions/mortgageused_spec.rb index 93ce3ed4c..88f4babef 100644 --- a/spec/models/form/sales/questions/mortgageused_spec.rb +++ b/spec/models/form/sales/questions/mortgageused_spec.rb @@ -11,7 +11,7 @@ RSpec.describe Form::Sales::Questions::Mortgageused, type: :model do let(:log) { build(:sales_log, :in_progress, ownershipsch:, stairowned:, staircase:) } context "when the form start year is 2024" do - let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2026_or_later?: false) } let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form:, id: "shared_ownership")) } let(:saledate) { Time.zone.local(2024, 5, 1) } let(:ownershipsch) { 1 } @@ -93,9 +93,10 @@ RSpec.describe Form::Sales::Questions::Mortgageused, type: :model do end context "when the form start year is 2025" do - let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 1)) } - let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form:, id: "shared_ownership")) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 1), start_year_2026_or_later?: false) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form:, id: subsection_id)) } let(:saledate) { Time.zone.local(2025, 5, 1) } + let(:subsection_id) { "shared_ownership_initial_purchase" } before do allow(form).to receive_messages(start_year_2024_or_later?: true, start_year_2025_or_later?: true) @@ -103,6 +104,7 @@ RSpec.describe Form::Sales::Questions::Mortgageused, type: :model do context "when it is a discounted ownership sale" do let(:ownershipsch) { 2 } + let(:subsection_id) { "discounted_ownership_scheme" } it "shows the correct question number" do expect(question.question_number).to eq 106 diff --git a/spec/models/form/sales/questions/new_service_charges_spec.rb b/spec/models/form/sales/questions/new_service_charges_spec.rb index bcb2f6191..a0fa1c7d4 100644 --- a/spec/models/form/sales/questions/new_service_charges_spec.rb +++ b/spec/models/form/sales/questions/new_service_charges_spec.rb @@ -7,7 +7,7 @@ RSpec.describe Form::Sales::Questions::NewServiceCharges, type: :model do let(:question_id) { nil } let(:question_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_staircasing_transaction", form: instance_double(Form, start_date:, start_year_2026_or_later?: true)) } let(:page) { instance_double(Form::Page, subsection:) } let(:start_date) { collection_start_date_for_year(2026) } @@ -48,6 +48,6 @@ RSpec.describe Form::Sales::Questions::NewServiceCharges, type: :model do end it "has the correct question number" do - expect(question.question_number).to eq(0) + expect(question.question_number).to eq(113) end end diff --git a/spec/models/form/sales/questions/person_age_known_spec.rb b/spec/models/form/sales/questions/person_age_known_spec.rb index 2f2c12c33..610932296 100644 --- a/spec/models/form/sales/questions/person_age_known_spec.rb +++ b/spec/models/form/sales/questions/person_age_known_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do let(:question_id) { "age3_known" } 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(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), person_question_count: 4))) } let(:person_index) { 2 } it "has correct page" do diff --git a/spec/models/form/sales/questions/person_age_spec.rb b/spec/models/form/sales/questions/person_age_spec.rb index 772ee20e0..5187eb856 100644 --- a/spec/models/form/sales/questions/person_age_spec.rb +++ b/spec/models/form/sales/questions/person_age_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do let(:question_id) { "age3" } 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), start_year_2024_or_later?: false))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2024_or_later?: false, person_question_count: 4))) } let(:person_index) { 2 } it "has correct page" do diff --git a/spec/models/form/sales/questions/person_gender_identity_spec.rb b/spec/models/form/sales/questions/person_gender_identity_spec.rb index 32c2a30aa..b431e9e92 100644 --- a/spec/models/form/sales/questions/person_gender_identity_spec.rb +++ b/spec/models/form/sales/questions/person_gender_identity_spec.rb @@ -8,7 +8,7 @@ RSpec.describe Form::Sales::Questions::PersonGenderIdentity, type: :model do let(:page) { instance_double(Form::Page) } let(:person_index) { 2 } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1), person_question_count: 4) } before do allow(page).to receive(:subsection).and_return(subsection) diff --git a/spec/models/form/sales/questions/person_relationship_to_buyer1_spec.rb b/spec/models/form/sales/questions/person_relationship_to_buyer1_spec.rb index 0bc00c179..af93fe8dd 100644 --- a/spec/models/form/sales/questions/person_relationship_to_buyer1_spec.rb +++ b/spec/models/form/sales/questions/person_relationship_to_buyer1_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::PersonRelationshipToBuyer1, type: :model let(:question_id) { "relat2" } 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), start_year_2024_or_later?: false))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2024_or_later?: false, person_question_count: 4))) } let(:person_index) { 2 } it "has correct page" do diff --git a/spec/models/form/sales/questions/person_relationship_to_buyer1_yes_no_spec.rb b/spec/models/form/sales/questions/person_relationship_to_buyer1_yes_no_spec.rb index cdfedc41e..d9d8830ca 100644 --- a/spec/models/form/sales/questions/person_relationship_to_buyer1_yes_no_spec.rb +++ b/spec/models/form/sales/questions/person_relationship_to_buyer1_yes_no_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::PersonRelationshipToBuyer1YesNo, type: :m let(:question_id) { "relat2" } let(:question_definition) { nil } - let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1), person_question_count: 4))) } let(:person_index) { 2 } it "has correct page" do diff --git a/spec/models/form/sales/questions/person_sex_registered_at_birth_spec.rb b/spec/models/form/sales/questions/person_sex_registered_at_birth_spec.rb index eb5f10687..fb408263d 100644 --- a/spec/models/form/sales/questions/person_sex_registered_at_birth_spec.rb +++ b/spec/models/form/sales/questions/person_sex_registered_at_birth_spec.rb @@ -8,7 +8,7 @@ RSpec.describe Form::Sales::Questions::PersonSexRegisteredAtBirth, type: :model let(:page) { instance_double(Form::Page) } let(:person_index) { 2 } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2026, 4, 1)) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2026, 4, 1), person_question_count: 4) } before do allow(page).to receive(:subsection).and_return(subsection) diff --git a/spec/models/form/sales/questions/person_working_situation_spec.rb b/spec/models/form/sales/questions/person_working_situation_spec.rb index c6a215741..c4f692e86 100644 --- a/spec/models/form/sales/questions/person_working_situation_spec.rb +++ b/spec/models/form/sales/questions/person_working_situation_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::PersonWorkingSituation, type: :model do let(:question_id) { "ecstat2" } let(:question_definition) { nil } - let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2025_or_later?: false) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2025_or_later?: false, person_question_count: 4) } let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form:)) } let(:person_index) { 2 } @@ -43,7 +43,7 @@ RSpec.describe Form::Sales::Questions::PersonWorkingSituation, type: :model do end context "with start year before 2025" do - let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2025_or_later?: false) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2025_or_later?: false, person_question_count: 4) } it "uses the old ordering for answer options" do expect(question.answer_options.keys).to eq(%w[1 2 3 4 6 8 5 0 10 7 9]) @@ -51,7 +51,7 @@ RSpec.describe Form::Sales::Questions::PersonWorkingSituation, type: :model do end context "with start year from 2025" do - let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 1), start_year_2025_or_later?: true) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 1), start_year_2025_or_later?: true, person_question_count: 4) } it "uses the new ordering for answer options" do expect(question.answer_options.keys).to eq(%w[1 2 3 4 5 6 7 8 9 0 10]) diff --git a/spec/models/form/sales/questions/purchase_price_spec.rb b/spec/models/form/sales/questions/purchase_price_spec.rb index c3d2999a0..637627799 100644 --- a/spec/models/form/sales/questions/purchase_price_spec.rb +++ b/spec/models/form/sales/questions/purchase_price_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::PurchasePrice, 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)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2026_or_later?: false))) } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/sales/questions/service_charge_spec.rb b/spec/models/form/sales/questions/service_charge_spec.rb index 21104d2b5..0639a6b24 100644 --- a/spec/models/form/sales/questions/service_charge_spec.rb +++ b/spec/models/form/sales/questions/service_charge_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Sales::Questions::ServiceCharge, type: :model do let(:question_id) { nil } let(:question_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date:, start_year_2026_or_later?: false)) } let(:page) { instance_double(Form::Page, subsection:) } let(:start_date) { Time.utc(2023, 4, 1) } let(:staircasing) { false } @@ -56,24 +56,23 @@ RSpec.describe Form::Sales::Questions::ServiceCharge, type: :model do 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 + let(:subsection) { instance_double(Form::Subsection, id: subsection_id, form: instance_double(Form, start_date:, start_year_2026_or_later?: true)) } context "when staircasing" do let(:staircasing) { true } + let(:subsection_id) { "shared_ownership_staircasing_transaction" } it "has the correct question number" do - expect(question.question_number).to eq(0) + expect(question.question_number).to eq(110) end end context "when not staircasing" do let(:staircasing) { false } + let(:subsection_id) { "shared_ownership_initial_purchase" } it "has the correct question number" do - expect(question.question_number).to eq(0) + expect(question.question_number).to eq(96) end end end