Browse Source

[CLDC-1487] Add buyer1 previous tenure question (#1133)

* use collection_start_year instead of the startdate (#1128)

* [CLDC-1487] Add buyer 1 previous tenure

Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>
pull/1132/head
Jack S 3 years ago committed by Kat
parent
commit
c8fa0d5ddd
  1. 15
      app/models/form/sales/pages/buyer1_previous_tenure.rb
  2. 22
      app/models/form/sales/questions/buyer1_previous_tenure.rb
  3. 1
      app/models/form/sales/subsections/household_situation.rb
  4. 7
      db/migrate/20230103135135_add_prevten.rb
  5. 1
      db/schema.rb
  6. 1
      spec/factories/sales_log.rb
  7. 25
      spec/models/form/sales/pages/buyer1_previous_tenure_spec.rb
  8. 46
      spec/models/form/sales/questions/buyer1_previous_tenure_spec.rb
  9. 1
      spec/models/form/sales/subsections/household_situation_spec.rb

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

@ -0,0 +1,15 @@
class Form::Sales::Pages::Buyer1PreviousTenure < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "buyer1_previous_tenure"
@header = "What was buyer 1's previous tenure?"
@description = ""
@subsection = subsection
end
def questions
@questions ||= [
Form::Sales::Questions::Buyer1PreviousTenure.new(nil, nil, self),
]
end
end

22
app/models/form/sales/questions/buyer1_previous_tenure.rb

@ -0,0 +1,22 @@
class Form::Sales::Questions::Buyer1PreviousTenure < ::Form::Question
def initialize(id, hsh, page)
super
@id = "prevten"
@check_answer_label = "Buyer 1's previous tenure"
@header = "What was buyer 1's previous tenure?"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@page = page
end
ANSWER_OPTIONS = {
"1" => { "value" => "Local Authority" },
"2" => { "value" => "Private registered provider or housing association tenant" },
"3" => { "value" => "Private tenant" },
"5" => { "value" => "Owner occupier" },
"4" => { "value" => "Tied home or renting with job" },
"6" => { "value" => "Living with family or friends" },
"7" => { "value" => "Temporary accomodation" },
"9" => { "value" => "Other" },
}.freeze
end

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

@ -11,6 +11,7 @@ class Form::Sales::Subsections::HouseholdSituation < ::Form::Subsection
@pages ||= [
Form::Sales::Pages::BuyersOrganisations.new(nil, nil, self),
Form::Sales::Pages::LastAccommodation.new(nil, nil, self),
Form::Sales::Pages::Buyer1PreviousTenure.new(nil, nil, self),
]
end
end

7
db/migrate/20230103135135_add_prevten.rb

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

1
db/schema.rb

@ -449,6 +449,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_01_04_093057) do
t.string "ppostc2"
t.string "prevloc"
t.boolean "previous_la_known"
t.integer "prevten"
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 ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id"

1
spec/factories/sales_log.rb

@ -80,6 +80,7 @@ FactoryBot.define do
hhregres { 1 }
hhregresstill { 4 }
ppcodenk { 1 }
prevten { 1 }
end
end
end

25
spec/models/form/sales/pages/buyer1_previous_tenure_spec.rb

@ -0,0 +1,25 @@
require "rails_helper"
RSpec.describe Form::Sales::Pages::Buyer1PreviousTenure, 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[prevten])
end
it "has the correct id" do
expect(page.id).to eq("buyer1_previous_tenure")
end
it "has the correct header" do
expect(page.header).to eq("What was buyer 1's previous tenure?")
end
end

46
spec/models/form/sales/questions/buyer1_previous_tenure_spec.rb

@ -0,0 +1,46 @@
require "rails_helper"
RSpec.describe Form::Sales::Questions::Buyer1PreviousTenure, 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("prevten")
end
it "has the correct header" do
expect(question.header).to eq("What was buyer 1's previous tenure?")
end
it "has the correct check_answer_label" do
expect(question.check_answer_label).to eq("Buyer 1's previous tenure")
end
it "has the correct type" do
expect(question.type).to eq("radio")
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({
"1" => { "value" => "Local Authority" },
"2" => { "value" => "Private registered provider or housing association tenant" },
"3" => { "value" => "Private tenant" },
"4" => { "value" => "Tied home or renting with job" },
"5" => { "value" => "Owner occupier" },
"6" => { "value" => "Living with family or friends" },
"7" => { "value" => "Temporary accomodation" },
"9" => { "value" => "Other" },
})
end
end

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

@ -16,6 +16,7 @@ RSpec.describe Form::Sales::Subsections::HouseholdSituation, type: :model do
%w[
buyers_organisations
last_accommodation
buyer1_previous_tenure
],
)
end

Loading…
Cancel
Save