Browse Source

feat: add functionality and make tests pass

pull/934/head
natdeanlewissoftwire 4 years ago
parent
commit
458f30bf66
  1. 15
      app/models/form/sales/pages/number_of_others_in_property.rb
  2. 12
      app/models/form/sales/questions/number_of_others_in_property.rb
  3. 1
      app/models/form/sales/subsections/household_characteristics.rb
  4. 7
      db/migrate/20221005125543_add_hholdcount_to_sales_log.rb
  5. 3
      db/schema.rb
  6. 1
      spec/factories/sales_log.rb
  7. 1
      spec/models/form/sales/subsections/household_characteristics_spec.rb
  8. 4
      spec/models/form_handler_spec.rb

15
app/models/form/sales/pages/number_of_others_in_property.rb

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

12
app/models/form/sales/questions/number_of_others_in_property.rb

@ -0,0 +1,12 @@
class Form::Sales::Questions::NumberOfOthersInProperty < ::Form::Question
def initialize(id, hsh, page)
super
@id = "hholdcount"
@check_answer_label = "Number of other people living in the property"
@header = "Besides the buyers, how many other people live in the property?"
@type = "numeric"
@hint_text = "You can provide details for a maximum of 4 other people."
@page = page
@width = 2
end
end

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

@ -26,6 +26,7 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection
Form::Sales::Pages::GenderIdentity2.new(nil, nil, self), Form::Sales::Pages::GenderIdentity2.new(nil, nil, self),
Form::Sales::Pages::Buyer2WorkingSituation.new(nil, nil, self), Form::Sales::Pages::Buyer2WorkingSituation.new(nil, nil, self),
Form::Sales::Pages::Buyer2LiveInProperty.new(nil, nil, self), Form::Sales::Pages::Buyer2LiveInProperty.new(nil, nil, self),
Form::Sales::Pages::NumberOfOthersInProperty.new(nil, nil, self),
] ]
end end
end end

7
db/migrate/20221005125543_add_hholdcount_to_sales_log.rb

@ -0,0 +1,7 @@
class AddHholdcountToSalesLog < ActiveRecord::Migration[7.0]
def change
change_table :sales_logs, bulk: true do |t|
t.column :hholdcount, :int
end
end
end

3
db/schema.rb

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2022_10_04_095132) do ActiveRecord::Schema[7.0].define(version: 2022_10_05_125543) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -354,6 +354,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_10_04_095132) do
t.integer "buy2livein" t.integer "buy2livein"
t.integer "ecstat2" t.integer "ecstat2"
t.integer "privacynotice" t.integer "privacynotice"
t.integer "hholdcount"
t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id"
t.index ["managing_organisation_id"], name: "index_sales_logs_on_managing_organisation_id" t.index ["managing_organisation_id"], name: "index_sales_logs_on_managing_organisation_id"
t.index ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id" t.index ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id"

1
spec/factories/sales_log.rb

@ -36,6 +36,7 @@ FactoryBot.define do
sex2 { "X" } sex2 { "X" }
buy2livein { "1" } buy2livein { "1" }
ecstat2 { "1" } ecstat2 { "1" }
hholdcount { "1" }
end end
end end
end end

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

@ -31,6 +31,7 @@ RSpec.describe Form::Sales::Subsections::HouseholdCharacteristics, type: :model
buyer_2_gender_identity buyer_2_gender_identity
buyer_2_working_situation buyer_2_working_situation
buyer_2_live_in_property buyer_2_live_in_property
number_of_others_in_property
], ],
) )
end end

4
spec/models/form_handler_spec.rb

@ -61,14 +61,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(32) expect(form.pages.count).to eq(33)
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(32) expect(form.pages.count).to eq(33)
expect(form.name).to eq("2021_2022_sales") expect(form.name).to eq("2021_2022_sales")
end end
end end

Loading…
Cancel
Save