Browse Source

feat: PO fix and tests (#1144)

* feat: PO fix and tests

* feat: simmplification

* refactor: linting
pull/1106/head
natdeanlewissoftwire 3 years ago committed by GitHub
parent
commit
97dada35bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      app/models/form/sales/pages/about_deposit_with_discount.rb
  2. 4
      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. 4
      app/models/sales_log.rb
  7. 8
      spec/models/form/sales/pages/about_deposit_with_discount_spec.rb
  8. 35
      spec/models/form/sales/pages/about_deposit_without_discount_spec.rb
  9. 1
      spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb
  10. 4
      spec/models/form_handler_spec.rb

17
app/models/form/sales/pages/about_deposit_with_discount.rb

@ -0,0 +1,17 @@
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 = [{ "is_type_discount?" => true }]
end
def questions
@questions ||= [
Form::Sales::Questions::DepositAmount.new(nil, nil, self),
Form::Sales::Questions::DepositDiscount.new(nil, nil, self),
]
end
end

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

@ -1,15 +1,15 @@
class Form::Sales::Pages::AboutDeposit < ::Form::Page class Form::Sales::Pages::AboutDepositWithoutDiscount < ::Form::Page
def initialize(id, hsh, subsection) def initialize(id, hsh, subsection)
super super
@header = "About the deposit" @header = "About the deposit"
@description = "" @description = ""
@subsection = subsection @subsection = subsection
@depends_on = [{ "is_type_discount?" => false }]
end end
def questions def questions
@questions ||= [ @questions ||= [
Form::Sales::Questions::DepositAmount.new(nil, nil, self), Form::Sales::Questions::DepositAmount.new(nil, nil, self),
Form::Sales::Questions::DepositDiscount.new(nil, nil, self),
] ]
end end
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::AboutPriceRtb.new(nil, nil, self),
Form::Sales::Pages::AboutPriceNotRtb.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::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 end

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

@ -11,7 +11,7 @@ class Form::Sales::Subsections::OutrightSale < ::Form::Subsection
@pages ||= [ @pages ||= [
Form::Sales::Pages::PurchasePrice.new(nil, nil, self), Form::Sales::Pages::PurchasePrice.new(nil, nil, self),
Form::Sales::Pages::MortgageAmount.new("mortgage_amount_outright_sale", 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 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::PreviousBedrooms.new(nil, nil, self),
Form::Sales::Pages::AboutPriceSharedOwnership.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::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), Form::Sales::Pages::MonthlyRent.new(nil, nil, self),
] ]
end end

4
app/models/sales_log.rb

@ -115,4 +115,8 @@ class SalesLog < Log
def right_to_buy? def right_to_buy?
[9, 14, 27].include?(type) [9, 14, 27].include?(type)
end end
def is_type_discount?
type == 18
end
end end

8
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" 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) } subject(:page) { described_class.new(page_id, page_definition, subsection) }
let(:page_id) { nil } let(:page_id) { nil }
@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Pages::AboutDeposit, type: :model do
end end
it "has the correct id" do it "has the correct id" do
expect(page.id).to eq(nil) expect(page.id).to eq("about_deposit_with_discount")
end end
it "has the correct header" do it "has the correct header" do
@ -28,6 +28,8 @@ RSpec.describe Form::Sales::Pages::AboutDeposit, type: :model do
end end
it "has correct depends_on" do it "has correct depends_on" do
expect(page.depends_on).to be_nil expect(page.depends_on).to eq(
[{ "is_type_discount?" => true }],
)
end end
end end

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

@ -0,0 +1,35 @@
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(
[{ "is_type_discount?" => false }],
)
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 previous_bedrooms
about_price_shared_ownership about_price_shared_ownership
mortgage_amount_shared_ownership mortgage_amount_shared_ownership
about_deposit_with_discount
about_deposit_shared_ownership about_deposit_shared_ownership
monthly_rent 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 it "is able to load a current sales form" do
form = form_handler.get_form("current_sales") form = form_handler.get_form("current_sales")
expect(form).to be_a(Form) 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") expect(form.name).to eq("2022_2023_sales")
end end
it "is able to load a previous sales form" do it "is able to load a previous sales form" do
form = form_handler.get_form("previous_sales") form = form_handler.get_form("previous_sales")
expect(form).to be_a(Form) 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") expect(form.name).to eq("2021_2022_sales")
end end
end end

Loading…
Cancel
Save