diff --git a/app/models/form/sales/pages/discount.rb b/app/models/form/sales/pages/discount.rb new file mode 100644 index 000000000..56670075b --- /dev/null +++ b/app/models/form/sales/pages/discount.rb @@ -0,0 +1,16 @@ +class Form::Sales::Pages::Discount < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "discount" + @header = "About the price of the property" + @depends_on = [{ + "right_to_buy?" => true, + }] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Discount.new(nil, nil, self), + ] + end +end diff --git a/app/models/form/sales/pages/about_price_rtb.rb b/app/models/form/sales/pages/purchase_price.rb similarity index 67% rename from app/models/form/sales/pages/about_price_rtb.rb rename to app/models/form/sales/pages/purchase_price.rb index d8d20398f..783bd73d3 100644 --- a/app/models/form/sales/pages/about_price_rtb.rb +++ b/app/models/form/sales/pages/purchase_price.rb @@ -1,7 +1,7 @@ -class Form::Sales::Pages::AboutPriceRtb < ::Form::Page +class Form::Sales::Pages::PurchasePrice < ::Form::Page def initialize(id, hsh, subsection) super - @id = "about_price_rtb" + @id = "purchase_price" @header = "About the price of the property" @depends_on = [{ "right_to_buy?" => true, @@ -11,7 +11,6 @@ class Form::Sales::Pages::AboutPriceRtb < ::Form::Page def questions @questions ||= [ Form::Sales::Questions::PurchasePrice.new(nil, nil, self, ownershipsch: 2), - Form::Sales::Questions::Discount.new(nil, nil, self), ] end end diff --git a/app/models/form/sales/subsections/discounted_ownership_scheme.rb b/app/models/form/sales/subsections/discounted_ownership_scheme.rb index e8af859cf..7221d2ca8 100644 --- a/app/models/form/sales/subsections/discounted_ownership_scheme.rb +++ b/app/models/form/sales/subsections/discounted_ownership_scheme.rb @@ -10,7 +10,8 @@ class Form::Sales::Subsections::DiscountedOwnershipScheme < ::Form::Subsection @pages ||= [ Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_discounted_ownership_joint_purchase", nil, self, ownershipsch: 2, joint_purchase: true), Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_discounted_ownership", nil, self, ownershipsch: 2, joint_purchase: false), - Form::Sales::Pages::AboutPriceRtb.new(nil, nil, self), + Form::Sales::Pages::PurchasePrice.new(nil, nil, self), + Form::Sales::Pages::Discount.new(nil, nil, self), Form::Sales::Pages::ExtraBorrowingValueCheck.new("extra_borrowing_price_value_check", nil, self), Form::Sales::Pages::PercentageDiscountValueCheck.new("percentage_discount_value_check", nil, self), Form::Sales::Pages::AboutPriceNotRtb.new(nil, nil, self), diff --git a/spec/models/form/sales/pages/discount_spec.rb b/spec/models/form/sales/pages/discount_spec.rb new file mode 100644 index 000000000..1a38bd634 --- /dev/null +++ b/spec/models/form/sales/pages/discount_spec.rb @@ -0,0 +1,39 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Pages::Discount, type: :model do + subject(:page) { described_class.new(page_id, page_definition, subsection) } + + let(:page_id) { nil } + let(:page_definition) { nil } + let(:subsection) { instance_double(Form::Subsection) } + + before do + allow(subsection).to receive(:form).and_return(instance_double(Form, start_year_after_2024?: false, start_date: Time.zone.local(2023, 4, 1))) + 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[discount]) + end + + it "has the correct id" do + expect(page.id).to eq("discount") + end + + it "has the correct header" do + expect(page.header).to eq("About the price of the property") + 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([{ + "right_to_buy?" => true, + }]) + end +end diff --git a/spec/models/form/sales/pages/about_price_rtb_spec.rb b/spec/models/form/sales/pages/purchase_price_spec.rb similarity index 83% rename from spec/models/form/sales/pages/about_price_rtb_spec.rb rename to spec/models/form/sales/pages/purchase_price_spec.rb index c7ce5c233..f0b762e90 100644 --- a/spec/models/form/sales/pages/about_price_rtb_spec.rb +++ b/spec/models/form/sales/pages/purchase_price_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -RSpec.describe Form::Sales::Pages::AboutPriceRtb, type: :model do +RSpec.describe Form::Sales::Pages::PurchasePrice, type: :model do subject(:page) { described_class.new(page_id, page_definition, subsection) } let(:page_id) { nil } @@ -16,11 +16,11 @@ RSpec.describe Form::Sales::Pages::AboutPriceRtb, type: :model do end it "has correct questions" do - expect(page.questions.map(&:id)).to eq(%w[value discount]) + expect(page.questions.map(&:id)).to eq(%w[value]) end it "has the correct id" do - expect(page.id).to eq("about_price_rtb") + expect(page.id).to eq("purchase_price") end it "has the correct header" do diff --git a/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb b/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb index 9bb428569..8f4820f95 100644 --- a/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb +++ b/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb @@ -16,7 +16,8 @@ RSpec.describe Form::Sales::Subsections::DiscountedOwnershipScheme, type: :model %w[ living_before_purchase_discounted_ownership_joint_purchase living_before_purchase_discounted_ownership - about_price_rtb + purchase_price + discount extra_borrowing_price_value_check percentage_discount_value_check about_price_not_rtb