From 9600112cdab8a46035230fb3f5c90ff05d7d4624 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Mon, 23 Mar 2026 11:57:39 +0000 Subject: [PATCH] CLDC-4318: update min for 26 onwards and test (#3257) --- .../questions/living_before_purchase_years.rb | 2 +- .../living_before_purchase_years_spec.rb | 91 +++++++------------ 2 files changed, 34 insertions(+), 59 deletions(-) diff --git a/app/models/form/sales/questions/living_before_purchase_years.rb b/app/models/form/sales/questions/living_before_purchase_years.rb index 30ff5fe8a..1e554e3fb 100644 --- a/app/models/form/sales/questions/living_before_purchase_years.rb +++ b/app/models/form/sales/questions/living_before_purchase_years.rb @@ -4,7 +4,7 @@ class Form::Sales::Questions::LivingBeforePurchaseYears < ::Form::Question @id = "proplen" @copy_key = "sales.sale_information.living_before_purchase.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}.proplen" @type = "numeric" - @min = 0 + @min = form.start_year_2026_or_later? ? 1 : 0 @max = 80 @step = 1 @width = 5 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 e16a70518..04be7f00a 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 @@ -1,83 +1,58 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::LivingBeforePurchaseYears, type: :model do + include CollectionTimeHelper + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1, joint_purchase: true) } let(:question_id) { nil } let(:question_definition) { nil } - let(:start_date) { Time.utc(2024, 2, 8) } - 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_year) { current_collection_start_year } + let(:start_year_2026_or_later?) { false } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date: collection_start_date_for_year(start_year), start_year_2026_or_later?: start_year_2026_or_later?))) } - context "when 2022" do - let(:start_date) { Time.utc(2022, 2, 8) } + it "has correct page" do + expect(question.page).to eq(page) + end - it "has correct page" do - expect(question.page).to eq(page) - end + it "has the correct id" do + expect(question.id).to eq("proplen") + end - it "has the correct id" do - expect(question.id).to eq("proplen") - end + it "has the correct type" do + expect(question.type).to eq("numeric") + end - it "has the correct type" do - expect(question.type).to eq("numeric") - end + it "is not marked as derived" do + expect(question.derived?(nil)).to be false + end - it "is not marked as derived" do - expect(question.derived?(nil)).to be false - end + it "has correct width" do + expect(question.width).to eq(5) + end - it "has correct width" do - expect(question.width).to eq(5) - end + it "has correct step" do + expect(question.step).to eq(1) + end - it "has correct step" do - expect(question.step).to eq(1) - end + it "has correct max" do + expect(question.max).to eq(80) + end + + context "with year 2025", metadata: { year: 25 } do + let(:start_year) { 2025 } it "has correct min" do expect(question.min).to eq(0) end - - it "has correct max" do - expect(question.max).to eq(80) - end end - context "when 2023" do - let(:start_date) { Time.utc(2023, 2, 8) } - - it "has correct page" do - expect(question.page).to eq(page) - end - - it "has the correct id" do - expect(question.id).to eq("proplen") - end - - it "has the correct type" do - expect(question.type).to eq("numeric") - end - - it "is not marked as derived" do - expect(question.derived?(nil)).to be false - end - - it "has correct width" do - expect(question.width).to eq(5) - end - - it "has correct step" do - expect(question.step).to eq(1) - end + context "with year 2026", metadata: { year: 26 } do + let(:start_year) { 2026 } + let(:start_year_2026_or_later?) { true } it "has correct min" do - expect(question.min).to eq(0) - end - - it "has correct max" do - expect(question.max).to eq(80) + expect(question.min).to eq(1) end end