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)
super
@header = "About the deposit"
@description = ""
@subsection = subsection
@depends_on = [{ "is_type_discount?" => false }]
end
def questions
@questions ||= [
Form::Sales::Questions::DepositAmount.new(nil, nil, self),
Form::Sales::Questions::DepositDiscount.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

4
app/models/sales_log.rb

@ -115,4 +115,8 @@ class SalesLog < Log
def right_to_buy?
[9, 14, 27].include?(type)
end
def is_type_discount?
type == 18
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"
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,8 @@ 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(
[{ "is_type_discount?" => true }],
)
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
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