Browse Source

CLDC-4318: update min for 26 onwards and test (#3257)

pull/3260/head
Nat Dean-Lewis 4 days ago committed by GitHub
parent
commit
9600112cda
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      app/models/form/sales/questions/living_before_purchase_years.rb
  2. 91
      spec/models/form/sales/questions/living_before_purchase_years_spec.rb

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

@ -4,7 +4,7 @@ class Form::Sales::Questions::LivingBeforePurchaseYears < ::Form::Question
@id = "proplen" @id = "proplen"
@copy_key = "sales.sale_information.living_before_purchase.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}.proplen" @copy_key = "sales.sale_information.living_before_purchase.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}.proplen"
@type = "numeric" @type = "numeric"
@min = 0 @min = form.start_year_2026_or_later? ? 1 : 0
@max = 80 @max = 80
@step = 1 @step = 1
@width = 5 @width = 5

91
spec/models/form/sales/questions/living_before_purchase_years_spec.rb

@ -1,83 +1,58 @@
require "rails_helper" require "rails_helper"
RSpec.describe Form::Sales::Questions::LivingBeforePurchaseYears, type: :model do 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) } subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1, joint_purchase: true) }
let(:question_id) { nil } let(:question_id) { nil }
let(:question_definition) { nil } let(:question_definition) { nil }
let(:start_date) { Time.utc(2024, 2, 8) } let(:start_year) { current_collection_start_year }
let(:subsection) { instance_double(Form::Subsection, id: "shared_ownership_initial_purchase", form: instance_double(Form, start_date:, start_year_2026_or_later?: false)) } let(:start_year_2026_or_later?) { false }
let(:page) { instance_double(Form::Page, subsection:) } 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 it "has correct page" do
let(:start_date) { Time.utc(2022, 2, 8) } expect(question.page).to eq(page)
end
it "has correct page" do it "has the correct id" do
expect(question.page).to eq(page) expect(question.id).to eq("proplen")
end end
it "has the correct id" do it "has the correct type" do
expect(question.id).to eq("proplen") expect(question.type).to eq("numeric")
end end
it "has the correct type" do it "is not marked as derived" do
expect(question.type).to eq("numeric") expect(question.derived?(nil)).to be false
end end
it "is not marked as derived" do it "has correct width" do
expect(question.derived?(nil)).to be false expect(question.width).to eq(5)
end end
it "has correct width" do it "has correct step" do
expect(question.width).to eq(5) expect(question.step).to eq(1)
end end
it "has correct step" do it "has correct max" do
expect(question.step).to eq(1) expect(question.max).to eq(80)
end end
context "with year 2025", metadata: { year: 25 } do
let(:start_year) { 2025 }
it "has correct min" do it "has correct min" do
expect(question.min).to eq(0) expect(question.min).to eq(0)
end end
it "has correct max" do
expect(question.max).to eq(80)
end
end end
context "when 2023" do context "with year 2026", metadata: { year: 26 } do
let(:start_date) { Time.utc(2023, 2, 8) } let(:start_year) { 2026 }
let(:start_year_2026_or_later?) { true }
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
it "has correct min" do it "has correct min" do
expect(question.min).to eq(0) expect(question.min).to eq(1)
end
it "has correct max" do
expect(question.max).to eq(80)
end end
end end

Loading…
Cancel
Save