Browse Source

Add mortgage lender page and question

pull/1164/head
Kat 3 years ago
parent
commit
c4ee1c00d4
  1. 14
      app/models/form/sales/pages/mortgage_lender.rb
  2. 56
      app/models/form/sales/questions/mortgage_lender.rb
  3. 1
      app/models/form/sales/subsections/discounted_ownership_scheme.rb
  4. 1
      app/models/form/sales/subsections/outright_sale.rb
  5. 1
      app/models/form/sales/subsections/shared_ownership_scheme.rb
  6. 33
      spec/models/form/sales/pages/mortgage_lender_spec.rb
  7. 79
      spec/models/form/sales/questions/mortgage_lender_spec.rb
  8. 1
      spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb
  9. 1
      spec/models/form/sales/subsections/outright_sale_spec.rb
  10. 1
      spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb

14
app/models/form/sales/pages/mortgage_lender.rb

@ -0,0 +1,14 @@
class Form::Sales::Pages::MortgageLender < ::Form::Page
def initialize(id, hsh, subsection)
super
@header = ""
@description = ""
@subsection = subsection
end
def questions
@questions ||= [
Form::Sales::Questions::MortgageLender.new(nil, nil, self),
]
end
end

56
app/models/form/sales/questions/mortgage_lender.rb

@ -0,0 +1,56 @@
class Form::Sales::Questions::MortgageLender < ::Form::Question
def initialize(id, hsh, page)
super
@id = "mortgagelender"
@check_answer_label = "Mortgage Lender"
@header = "What is the name of the mortgage lender?"
@type = "select"
@hint_text = ""
@page = page
@answer_options = ANSWER_OPTIONS
end
ANSWER_OPTIONS = {
"" => "Select an option",
"1" => "Atom Bank",
"2" => "Barclays Bank PLC",
"3" => "Bath Building Society",
"4" => "Buckinghamshire Building Society",
"5" => "Cambridge Building Society",
"6" => "Coventry Building Society",
"7" => "Cumberland Building Society",
"8" => "Darlington Building Society",
"9" => "Dudley Building Society",
"10" => "Ecology Building Society",
"11" => "Halifax",
"12" => "Hanley Economic Building Society",
"13" => "Hinckley and Rugby Building Society",
"14" => "Holmesdale Building Society",
"15" => "Ipswich Building Society",
"16" => "Leeds Building Society",
"17" => "Lloyds Bank",
"18" => "Mansfield Building Society",
"19" => "Market Harborough Building Society",
"20" => "Melton Mowbray Building Society",
"21" => "Nationwide Building Society",
"22" => "Natwest",
"23" => "Nedbank Private Wealth",
"24" => "Newbury Building Society",
"25" => "OneSavings Bank",
"26" => "Parity Trust",
"27" => "Penrith Building Society",
"28" => "Pepper Homeloans",
"29" => "Royal Bank of Scotland",
"30" => "Santander",
"31" => "Skipton Building Society",
"32" => "Teachers Building Society",
"33" => "The Co-operative Bank",
"34" => "Tipton & Coseley Building Society",
"35" => "TSB",
"36" => "Ulster Bank",
"37" => "Virgin Money",
"38" => "West Bromwich Building Society",
"39" => "Yorkshire Building Society",
"40" => "Other",
}.freeze
end

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

@ -13,6 +13,7 @@ class Form::Sales::Subsections::DiscountedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::AboutPriceNotRtb.new(nil, nil, self),
Form::Sales::Pages::Mortgageused.new("mortgage_used_discounted_ownership", nil, self),
Form::Sales::Pages::MortgageAmount.new("mortgage_amount_discounted_ownership", nil, self),
Form::Sales::Pages::MortgageLender.new("mortgage_lender_discounted_ownership", nil, self),
Form::Sales::Pages::MortgageLength.new("mortgage_length_discounted_ownership", nil, self),
Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_discounted_ownership", nil, self),
Form::Sales::Pages::DepositValueCheck.new("discounted_ownership_deposit_value_check", nil, self),

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

@ -11,6 +11,7 @@ class Form::Sales::Subsections::OutrightSale < ::Form::Subsection
Form::Sales::Pages::PurchasePrice.new(nil, nil, self),
Form::Sales::Pages::Mortgageused.new("mortgage_used_outright_sale", nil, self),
Form::Sales::Pages::MortgageAmount.new("mortgage_amount_outright_sale", nil, self),
Form::Sales::Pages::MortgageLender.new("mortgage_lender_outright_sale", nil, self),
Form::Sales::Pages::MortgageLength.new("mortgage_length_outright_sale", nil, self),
Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_outright_sale", nil, self),
Form::Sales::Pages::DepositValueCheck.new("outright_sale_deposit_value_check", nil, self),

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

@ -22,6 +22,7 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::AboutPriceSharedOwnership.new(nil, nil, self),
Form::Sales::Pages::Mortgageused.new("mortgage_used_shared_ownership", nil, self),
Form::Sales::Pages::MortgageAmount.new("mortgage_amount_shared_ownership", nil, self),
Form::Sales::Pages::MortgageLender.new("mortgage_lender_shared_ownership", nil, self),
Form::Sales::Pages::MortgageLength.new("mortgage_length_shared_ownership", nil, self),
Form::Sales::Pages::AboutDepositWithDiscount.new(nil, nil, self),
Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_shared_ownership", nil, self),

33
spec/models/form/sales/pages/mortgage_lender_spec.rb

@ -0,0 +1,33 @@
require "rails_helper"
RSpec.describe Form::Sales::Pages::MortgageLender, type: :model do
subject(:page) { described_class.new(page_id, page_definition, subsection) }
let(:page_id) { "mortgage_lender" }
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[mortgagelender])
end
it "has the correct id" do
expect(page.id).to eq("mortgage_lender")
end
it "has the correct header" do
expect(page.header).to eq("")
end
it "has the correct description" do
expect(page.description).to eq("")
end
it "has correct depends_on" do
expect(page.depends_on).to be_nil
end
end

79
spec/models/form/sales/questions/mortgage_lender_spec.rb

@ -0,0 +1,79 @@
require "rails_helper"
RSpec.describe Form::Sales::Questions::MortgageLender, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
let(:question_id) { nil }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
it "has correct page" do
expect(question.page).to eq(page)
end
it "has the correct id" do
expect(question.id).to eq("mortgagelender")
end
it "has the correct header" do
expect(question.header).to eq("What is the name of the mortgage lender?")
end
it "has the correct check_answer_label" do
expect(question.check_answer_label).to eq("Mortgage Lender")
end
it "has the correct type" do
expect(question.type).to eq("select")
end
it "is not marked as derived" do
expect(question.derived?).to be false
end
it "has the correct answer_options" do
expect(question.answer_options).to eq({
"" => "Select an option",
"1" => "Atom Bank",
"2" => "Barclays Bank PLC",
"3" => "Bath Building Society",
"4" => "Buckinghamshire Building Society",
"5" => "Cambridge Building Society",
"6" => "Coventry Building Society",
"7" => "Cumberland Building Society",
"8" => "Darlington Building Society",
"9" => "Dudley Building Society",
"10" => "Ecology Building Society",
"11" => "Halifax",
"12" => "Hanley Economic Building Society",
"13" => "Hinckley and Rugby Building Society",
"14" => "Holmesdale Building Society",
"15" => "Ipswich Building Society",
"16" => "Leeds Building Society",
"17" => "Lloyds Bank",
"18" => "Mansfield Building Society",
"19" => "Market Harborough Building Society",
"20" => "Melton Mowbray Building Society",
"21" => "Nationwide Building Society",
"22" => "Natwest",
"23" => "Nedbank Private Wealth",
"24" => "Newbury Building Society",
"25" => "OneSavings Bank",
"26" => "Parity Trust",
"27" => "Penrith Building Society",
"28" => "Pepper Homeloans",
"29" => "Royal Bank of Scotland",
"30" => "Santander",
"31" => "Skipton Building Society",
"32" => "Teachers Building Society",
"33" => "The Co-operative Bank",
"34" => "Tipton & Coseley Building Society",
"35" => "TSB",
"36" => "Ulster Bank",
"37" => "Virgin Money",
"38" => "West Bromwich Building Society",
"39" => "Yorkshire Building Society",
"40" => "Other",
})
end
end

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

@ -19,6 +19,7 @@ RSpec.describe Form::Sales::Subsections::DiscountedOwnershipScheme, type: :model
about_price_not_rtb
mortgage_used_discounted_ownership
mortgage_amount_discounted_ownership
mortgage_lender_discounted_ownership
mortgage_length_discounted_ownership
about_deposit_discounted_ownership
discounted_ownership_deposit_value_check

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

@ -17,6 +17,7 @@ RSpec.describe Form::Sales::Subsections::OutrightSale, type: :model do
purchase_price
mortgage_used_outright_sale
mortgage_amount_outright_sale
mortgage_lender_outright_sale
mortgage_length_outright_sale
about_deposit_outright_sale
outright_sale_deposit_value_check

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

@ -28,6 +28,7 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipScheme, type: :model do
about_price_shared_ownership
mortgage_used_shared_ownership
mortgage_amount_shared_ownership
mortgage_lender_shared_ownership
mortgage_length_shared_ownership
about_deposit_with_discount
about_deposit_shared_ownership

Loading…
Cancel
Save