Browse Source

feat: PO fix and tests

pull/1144/head
natdeanlewissoftwire 3 years ago
parent
commit
99a79d1120
  1. 4
      app/models/form/sales/pages/about_deposit_with_discount.rb
  2. 31
      app/models/form/sales/pages/about_deposit_without_discount.rb
  3. 2
      app/models/form/sales/subsections/discounted_ownership_scheme.rb
  4. 2
      app/models/form/sales/subsections/outright_sale.rb
  5. 3
      app/models/form/sales/subsections/shared_ownership_scheme.rb
  6. 10
      spec/models/form/sales/pages/about_deposit_with_discount_spec.rb
  7. 51
      spec/models/form/sales/pages/about_deposit_without_discount_spec.rb
  8. 1
      spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb
  9. 4
      spec/models/form_handler_spec.rb

4
app/models/form/sales/pages/about_deposit.rb → app/models/form/sales/pages/about_deposit_with_discount.rb

@ -1,9 +1,11 @@
class Form::Sales::Pages::AboutDeposit < ::Form::Page
class Form::Sales::Pages::AboutDepositWithDiscount < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "about_deposit_with_discount"
@header = "About the deposit"
@description = ""
@subsection = subsection
@depends_on = [{ "type" => 18 }]
end
def questions

31
app/models/form/sales/pages/about_deposit_without_discount.rb

@ -0,0 +1,31 @@
class Form::Sales::Pages::AboutDepositWithoutDiscount < ::Form::Page
def initialize(id, hsh, subsection)
super
@header = "About the deposit"
@description = ""
@subsection = subsection
@depends_on = [
{ "type" => 2 },
{ "type" => 24 },
{ "type" => 16 },
{ "type" => 28 },
{ "type" => 31 },
{ "type" => 30 },
{ "type" => 8 },
{ "type" => 14 },
{ "type" => 27 },
{ "type" => 9 },
{ "type" => 29 },
{ "type" => 21 },
{ "type" => 22 },
{ "type" => 10 },
{ "type" => 12 },
]
end
def questions
@questions ||= [
Form::Sales::Questions::DepositAmount.new(nil, nil, self),
]
end
end

2
app/models/form/sales/subsections/discounted_ownership_scheme.rb

@ -13,7 +13,7 @@ class Form::Sales::Subsections::DiscountedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::AboutPriceRtb.new(nil, nil, self),
Form::Sales::Pages::AboutPriceNotRtb.new(nil, nil, self),
Form::Sales::Pages::MortgageAmount.new("mortgage_amount_discounted_ownership", nil, self),
Form::Sales::Pages::AboutDeposit.new("about_deposit_discounted_ownership", nil, self),
Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_discounted_ownership", nil, self),
]
end

2
app/models/form/sales/subsections/outright_sale.rb

@ -11,7 +11,7 @@ class Form::Sales::Subsections::OutrightSale < ::Form::Subsection
@pages ||= [
Form::Sales::Pages::PurchasePrice.new(nil, nil, self),
Form::Sales::Pages::MortgageAmount.new("mortgage_amount_outright_sale", nil, self),
Form::Sales::Pages::AboutDeposit.new("about_deposit_outright_sale", nil, self),
Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_outright_sale", nil, self),
]
end

3
app/models/form/sales/subsections/shared_ownership_scheme.rb

@ -19,7 +19,8 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::PreviousBedrooms.new(nil, nil, self),
Form::Sales::Pages::AboutPriceSharedOwnership.new(nil, nil, self),
Form::Sales::Pages::MortgageAmount.new("mortgage_amount_shared_ownership", nil, self),
Form::Sales::Pages::AboutDeposit.new("about_deposit_shared_ownership", nil, self),
Form::Sales::Pages::AboutDepositWithDiscount.new(nil, nil, self),
Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_shared_ownership", nil, self),
Form::Sales::Pages::MonthlyRent.new(nil, nil, self),
]
end

10
spec/models/form/sales/pages/about_deposit_spec.rb → spec/models/form/sales/pages/about_deposit_with_discount_spec.rb

@ -1,6 +1,6 @@
require "rails_helper"
RSpec.describe Form::Sales::Pages::AboutDeposit, type: :model do
RSpec.describe Form::Sales::Pages::AboutDepositWithDiscount, type: :model do
subject(:page) { described_class.new(page_id, page_definition, subsection) }
let(:page_id) { nil }
@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Pages::AboutDeposit, type: :model do
end
it "has the correct id" do
expect(page.id).to eq(nil)
expect(page.id).to eq("about_deposit_with_discount")
end
it "has the correct header" do
@ -28,6 +28,10 @@ RSpec.describe Form::Sales::Pages::AboutDeposit, type: :model do
end
it "has correct depends_on" do
expect(page.depends_on).to be_nil
expect(page.depends_on).to eq(
[
{ "type" => 18 },
],
)
end
end

51
spec/models/form/sales/pages/about_deposit_without_discount_spec.rb

@ -0,0 +1,51 @@
require "rails_helper"
RSpec.describe Form::Sales::Pages::AboutDepositWithoutDiscount, 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) }
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[deposit])
end
it "has the correct id" do
expect(page.id).to eq(nil)
end
it "has the correct header" do
expect(page.header).to eq("About the deposit")
end
it "has the correct description" do
expect(page.description).to eq("")
end
it "has correct depends_on" do
expect(page.depends_on).to eq(
[
{ "type" => 2 },
{ "type" => 24 },
{ "type" => 16 },
{ "type" => 28 },
{ "type" => 31 },
{ "type" => 30 },
{ "type" => 8 },
{ "type" => 14 },
{ "type" => 27 },
{ "type" => 9 },
{ "type" => 29 },
{ "type" => 21 },
{ "type" => 22 },
{ "type" => 10 },
{ "type" => 12 },
],
)
end
end

1
spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb

@ -24,6 +24,7 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipScheme, type: :model do
previous_bedrooms
about_price_shared_ownership
mortgage_amount_shared_ownership
about_deposit_with_discount
about_deposit_shared_ownership
monthly_rent
],

4
spec/models/form_handler_spec.rb

@ -52,14 +52,14 @@ RSpec.describe FormHandler do
it "is able to load a current sales form" do
form = form_handler.get_form("current_sales")
expect(form).to be_a(Form)
expect(form.pages.count).to eq(89)
expect(form.pages.count).to eq(90)
expect(form.name).to eq("2022_2023_sales")
end
it "is able to load a previous sales form" do
form = form_handler.get_form("previous_sales")
expect(form).to be_a(Form)
expect(form.pages.count).to eq(89)
expect(form.pages.count).to eq(90)
expect(form.name).to eq("2021_2022_sales")
end
end

Loading…
Cancel
Save