From 1a07e37049fadccfa43d9166f3d245ce9b270a0d Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:51:50 +0000 Subject: [PATCH] CLDC-3717: Sales - Remove Q9 (Is the buyer a company?) (25/26) (#2755) --- app/models/form/sales/pages/buyer_live.rb | 7 ++- app/models/form/sales/pages/joint_purchase.rb | 20 +++++-- app/models/form/sales/subsections/setup.rb | 2 +- config/locales/forms/2025/sales/setup.en.yml | 6 -- .../form/sales/pages/buyer_live_spec.rb | 58 +++++++++++------- .../form/sales/pages/joint_purchase_spec.rb | 60 +++++++++++++------ .../form/sales/subsections/setup_spec.rb | 1 - 7 files changed, 100 insertions(+), 54 deletions(-) diff --git a/app/models/form/sales/pages/buyer_live.rb b/app/models/form/sales/pages/buyer_live.rb index d0b772355..8bde09ddb 100644 --- a/app/models/form/sales/pages/buyer_live.rb +++ b/app/models/form/sales/pages/buyer_live.rb @@ -2,9 +2,10 @@ class Form::Sales::Pages::BuyerLive < ::Form::Page def initialize(id, hsh, subsection) super @id = "buyer_live" - @depends_on = [{ - "companybuy" => 2, - }] + end + + def depends_on + [{ "companybuy" => 2 }] unless form.start_year_2025_or_later? end def questions diff --git a/app/models/form/sales/pages/joint_purchase.rb b/app/models/form/sales/pages/joint_purchase.rb index bec7c88c1..a8382d1fb 100644 --- a/app/models/form/sales/pages/joint_purchase.rb +++ b/app/models/form/sales/pages/joint_purchase.rb @@ -2,11 +2,21 @@ class Form::Sales::Pages::JointPurchase < ::Form::Page def initialize(id, hsh, subsection) super @id = "joint_purchase" - @depends_on = [ - { "ownershipsch" => 1 }, - { "ownershipsch" => 2 }, - { "companybuy" => 2 }, - ] + end + + def depends_on + if form.start_year_2025_or_later? + [ + { "ownershipsch" => 1 }, + { "ownershipsch" => 2 }, + ] + else + [ + { "ownershipsch" => 1 }, + { "ownershipsch" => 2 }, + { "companybuy" => 2 }, + ] + end end def questions diff --git a/app/models/form/sales/subsections/setup.rb b/app/models/form/sales/subsections/setup.rb index 87656505f..0c667ebda 100644 --- a/app/models/form/sales/subsections/setup.rb +++ b/app/models/form/sales/subsections/setup.rb @@ -17,7 +17,7 @@ class Form::Sales::Subsections::Setup < ::Form::Subsection Form::Sales::Pages::SharedOwnershipType.new(nil, nil, self), Form::Sales::Pages::DiscountedOwnershipType.new(nil, nil, self), (Form::Sales::Pages::OutrightOwnershipType.new(nil, nil, self) unless form.start_year_2025_or_later?), - Form::Sales::Pages::BuyerCompany.new(nil, nil, self), + (Form::Sales::Pages::BuyerCompany.new(nil, nil, self) unless form.start_year_2025_or_later?), (Form::Sales::Pages::BuyerLive.new(nil, nil, self) unless form.start_year_2025_or_later?), Form::Sales::Pages::JointPurchase.new(nil, nil, self), Form::Sales::Pages::NumberJointBuyers.new(nil, nil, self), diff --git a/config/locales/forms/2025/sales/setup.en.yml b/config/locales/forms/2025/sales/setup.en.yml index 996ec5df3..6f7c5da98 100644 --- a/config/locales/forms/2025/sales/setup.en.yml +++ b/config/locales/forms/2025/sales/setup.en.yml @@ -57,12 +57,6 @@ en: hint_text: "" question_text: "What is the type of discounted ownership sale?" - companybuy: - page_header: "" - check_answer_label: "Company buyer" - hint_text: "" - question_text: "Is the buyer a company?" - jointpur: page_header: "" check_answer_label: "Joint purchase" diff --git a/spec/models/form/sales/pages/buyer_live_spec.rb b/spec/models/form/sales/pages/buyer_live_spec.rb index ac5ac2c27..1880c37e3 100644 --- a/spec/models/form/sales/pages/buyer_live_spec.rb +++ b/spec/models/form/sales/pages/buyer_live_spec.rb @@ -8,32 +8,50 @@ RSpec.describe Form::Sales::Pages::BuyerLive, type: :model do let(:page_id) { nil } let(:page_definition) { nil } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: current_collection_start_date) } - before do - allow(form).to receive(:start_year_2024_or_later?).and_return(true) - allow(subsection).to receive(:form).and_return(form) - end + context "when start year is 2024" do + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } - it "has correct subsection" do - expect(page.subsection).to eq(subsection) - end + before do + allow(form).to receive(:start_year_2024_or_later?).and_return(true) + allow(form).to receive(:start_year_2025_or_later?).and_return(false) + allow(subsection).to receive(:form).and_return(form) + end - it "has correct questions" do - expect(page.questions.map(&:id)).to eq(%w[buylivein]) - end + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end - it "has the correct id" do - expect(page.id).to eq("buyer_live") - end + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[buylivein]) + end - it "has the correct description" do - expect(page.description).to be_nil + it "has the correct id" do + expect(page.id).to eq("buyer_live") + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has correct depends_on" do + expect(page.depends_on).to eq([{ + "companybuy" => 2, + }]) + end end - it "has correct depends_on" do - expect(page.depends_on).to eq([{ - "companybuy" => 2, - }]) + context "when start year is 2025" do + let(:form) { instance_double(Form, start_date: Time.zone.local(2025, 4, 1)) } + + before do + allow(form).to receive(:start_year_2024_or_later?).and_return(true) + allow(form).to receive(:start_year_2025_or_later?).and_return(true) + allow(subsection).to receive(:form).and_return(form) + end + + it "has correct depends_on" do + expect(page.depends_on).to be_nil + end end end diff --git a/spec/models/form/sales/pages/joint_purchase_spec.rb b/spec/models/form/sales/pages/joint_purchase_spec.rb index 4ccefd03d..bba9384ad 100644 --- a/spec/models/form/sales/pages/joint_purchase_spec.rb +++ b/spec/models/form/sales/pages/joint_purchase_spec.rb @@ -5,29 +5,53 @@ RSpec.describe Form::Sales::Pages::JointPurchase, 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))) } - it "has correct subsection" do - expect(page.subsection).to eq(subsection) - end + context "when start year is 2024" do + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1))) } - it "has correct questions" do - expect(page.questions.map(&:id)).to eq(%w[jointpur]) - end + before do + allow(subsection.form).to receive(:start_year_2024_or_later?).and_return(true) + allow(subsection.form).to receive(:start_year_2025_or_later?).and_return(false) + end - it "has the correct id" do - expect(page.id).to eq("joint_purchase") - end + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[jointpur]) + end - it "has the correct description" do - expect(page.description).to be_nil + it "has the correct id" do + expect(page.id).to eq("joint_purchase") + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has correct depends_on" do + expect(page.depends_on).to eq([ + { "ownershipsch" => 1 }, + { "ownershipsch" => 2 }, + { "companybuy" => 2 }, + ]) + end end - it "has correct depends_on" do - expect(page.depends_on).to eq([ - { "ownershipsch" => 1 }, - { "ownershipsch" => 2 }, - { "companybuy" => 2 }, - ]) + context "when start year is 2025" do + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1))) } + + before do + allow(subsection.form).to receive(:start_year_2024_or_later?).and_return(true) + allow(subsection.form).to receive(:start_year_2025_or_later?).and_return(true) + end + + it "has correct depends_on" do + expect(page.depends_on).to eq([ + { "ownershipsch" => 1 }, + { "ownershipsch" => 2 }, + ]) + end end end diff --git a/spec/models/form/sales/subsections/setup_spec.rb b/spec/models/form/sales/subsections/setup_spec.rb index 1731ab256..ad01ccd41 100644 --- a/spec/models/form/sales/subsections/setup_spec.rb +++ b/spec/models/form/sales/subsections/setup_spec.rb @@ -96,7 +96,6 @@ RSpec.describe Form::Sales::Subsections::Setup, type: :model do staircasing shared_ownership_type discounted_ownership_type - buyer_company joint_purchase number_joint_buyers buyer_interview_joint_purchase