Browse Source

CLDC-3159: Move buyer interview question to setup section (#2177)

pull/2211/head
Rachael Booth 11 months ago committed by GitHub
parent
commit
7cffaca352
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      app/models/form/sales/subsections/household_characteristics.rb
  2. 3
      app/models/form/sales/subsections/setup.rb
  3. 118
      spec/models/form/sales/subsections/household_characteristics_spec.rb
  4. 41
      spec/models/form/sales/subsections/setup_spec.rb
  5. 16
      spec/services/bulk_upload/sales/year2024/row_parser_spec.rb

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

@ -8,7 +8,7 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection
def pages def pages
@pages ||= [ @pages ||= [
Form::Sales::Pages::BuyerInterview.new(nil, nil, self), (Form::Sales::Pages::BuyerInterview.new(nil, nil, self) unless form.start_year_after_2024?),
Form::Sales::Pages::PrivacyNotice.new(nil, nil, self), Form::Sales::Pages::PrivacyNotice.new(nil, nil, self),
Form::Sales::Pages::Age1.new(nil, nil, self), Form::Sales::Pages::Age1.new(nil, nil, self),
Form::Sales::Pages::RetirementValueCheck.new("age_1_retirement_value_check", nil, self, person_index: 1), Form::Sales::Pages::RetirementValueCheck.new("age_1_retirement_value_check", nil, self, person_index: 1),

3
app/models/form/sales/subsections/setup.rb

@ -20,6 +20,7 @@ class Form::Sales::Subsections::Setup < ::Form::Subsection
Form::Sales::Pages::BuyerLive.new(nil, nil, self), Form::Sales::Pages::BuyerLive.new(nil, nil, self),
Form::Sales::Pages::JointPurchase.new(nil, nil, self), Form::Sales::Pages::JointPurchase.new(nil, nil, self),
Form::Sales::Pages::NumberJointBuyers.new(nil, nil, self), Form::Sales::Pages::NumberJointBuyers.new(nil, nil, self),
] (Form::Sales::Pages::BuyerInterview.new(nil, nil, self) if form.start_year_after_2024?),
].flatten.compact
end end
end end

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

@ -8,6 +8,10 @@ RSpec.describe Form::Sales::Subsections::HouseholdCharacteristics, type: :model
let(:section) { instance_double(Form::Sales::Sections::Household) } let(:section) { instance_double(Form::Sales::Sections::Household) }
let(:form) { instance_double(Form) } let(:form) { instance_double(Form) }
before do
allow(section).to receive(:form).and_return(form)
end
it "has correct section" do it "has correct section" do
expect(household_characteristics.section).to eq(section) expect(household_characteristics.section).to eq(section)
end end
@ -15,7 +19,7 @@ RSpec.describe Form::Sales::Subsections::HouseholdCharacteristics, type: :model
context "with 2022/23 form" do context "with 2022/23 form" do
before do before do
allow(form).to receive(:start_date).and_return(Time.zone.local(2022, 4, 1)) allow(form).to receive(:start_date).and_return(Time.zone.local(2022, 4, 1))
allow(section).to receive(:form).and_return(form) allow(form).to receive(:start_year_after_2024?).and_return(false)
end end
it "has correct pages" do it "has correct pages" do
@ -119,7 +123,7 @@ RSpec.describe Form::Sales::Subsections::HouseholdCharacteristics, type: :model
context "with 2023/24 form" do context "with 2023/24 form" do
before do before do
allow(form).to receive(:start_date).and_return(Time.zone.local(2023, 4, 1)) allow(form).to receive(:start_date).and_return(Time.zone.local(2023, 4, 1))
allow(section).to receive(:form).and_return(form) allow(form).to receive(:start_year_after_2024?).and_return(false)
end end
it "has correct pages" do it "has correct pages" do
@ -227,6 +231,116 @@ RSpec.describe Form::Sales::Subsections::HouseholdCharacteristics, type: :model
end end
end end
context "with 2024/25 form" do
before do
allow(form).to receive(:start_date).and_return(Time.zone.local(2024, 4, 1))
allow(form).to receive(:start_year_after_2024?).and_return(true)
end
it "has correct pages" do
expect(household_characteristics.pages.map(&:id)).to eq(
%w[
privacy_notice
buyer_1_age
age_1_retirement_value_check
age_1_old_persons_shared_ownership_value_check
buyer_1_gender_identity
gender_1_retirement_value_check
buyer_1_ethnic_group
buyer_1_ethnic_background_black
buyer_1_ethnic_background_asian
buyer_1_ethnic_background_arab
buyer_1_ethnic_background_mixed
buyer_1_ethnic_background_white
buyer_1_nationality
buyer_1_working_situation
working_situation_1_retirement_value_check
working_situation_buyer_1_income_min_value_check
buyer_1_live_in_property
buyer_1_live_in_property_value_check
buyer_2_relationship_to_buyer_1
buyer_2_relationship_student_not_child_value_check
buyer_2_age
age_2_old_persons_shared_ownership_value_check
age_2_buyer_retirement_value_check
buyer_2_age_student_not_child_value_check
buyer_2_gender_identity
gender_2_buyer_retirement_value_check
buyer_2_ethnic_group
buyer_2_ethnic_background_black
buyer_2_ethnic_background_asian
buyer_2_ethnic_background_arab
buyer_2_ethnic_background_mixed
buyer_2_ethnic_background_white
buyer_2_nationality
buyer_2_working_situation
working_situation_2_retirement_value_check_joint_purchase
working_situation_buyer_2_income_min_value_check
buyer_2_working_situation_student_not_child_value_check
buyer_2_live_in_property
buyer_2_live_in_property_value_check
number_of_others_in_property
number_of_others_in_property_joint_purchase
person_2_known
person_2_relationship_to_buyer_1
relationship_2_student_not_child_value_check
person_2_age
age_2_retirement_value_check
age_2_student_not_child_value_check
person_2_gender_identity
gender_2_retirement_value_check
person_2_working_situation
working_situation_2_retirement_value_check
working_situation_2_student_not_child_value_check
person_3_known
person_3_relationship_to_buyer_1
relationship_3_student_not_child_value_check
person_3_age
age_3_retirement_value_check
age_3_student_not_child_value_check
person_3_gender_identity
gender_3_retirement_value_check
person_3_working_situation
working_situation_3_retirement_value_check
working_situation_3_student_not_child_value_check
person_4_known
person_4_relationship_to_buyer_1
relationship_4_student_not_child_value_check
person_4_age
age_4_retirement_value_check
age_4_student_not_child_value_check
person_4_gender_identity
gender_4_retirement_value_check
person_4_working_situation
working_situation_4_retirement_value_check
working_situation_4_student_not_child_value_check
person_5_known
person_5_relationship_to_buyer_1
relationship_5_student_not_child_value_check
person_5_age
age_5_retirement_value_check
age_5_student_not_child_value_check
person_5_gender_identity
gender_5_retirement_value_check
person_5_working_situation
working_situation_5_retirement_value_check
working_situation_5_student_not_child_value_check
person_6_known
person_6_relationship_to_buyer_1
relationship_6_student_not_child_value_check
person_6_age
age_6_retirement_value_check
age_6_student_not_child_value_check
person_6_gender_identity
gender_6_retirement_value_check
person_6_working_situation
working_situation_6_retirement_value_check
working_situation_6_student_not_child_value_check
],
)
end
end
it "has the correct id" do it "has the correct id" do
expect(household_characteristics.id).to eq("household_characteristics") expect(household_characteristics.id).to eq("household_characteristics")
end end

41
spec/models/form/sales/subsections/setup_spec.rb

@ -12,6 +12,19 @@ RSpec.describe Form::Sales::Subsections::Setup, type: :model do
expect(setup.section).to eq(section) expect(setup.section).to eq(section)
end end
it "has the correct id" do
expect(setup.id).to eq("setup")
end
it "has the correct label" do
expect(setup.label).to eq("Set up this sales log")
end
context "when start year is before 2024" do
before do
allow(section.form).to receive(:start_year_after_2024?).and_return(false)
end
it "has correct pages" do it "has correct pages" do
expect(setup.pages.map(&:id)).to eq( expect(setup.pages.map(&:id)).to eq(
%w[ %w[
@ -31,12 +44,32 @@ RSpec.describe Form::Sales::Subsections::Setup, type: :model do
], ],
) )
end end
end
it "has the correct id" do context "when start year is >= 2024" do
expect(setup.id).to eq("setup") before do
allow(section.form).to receive(:start_year_after_2024?).and_return(true)
end end
it "has the correct label" do it "has correct pages" do
expect(setup.label).to eq("Set up this sales log") expect(setup.pages.map(&:id)).to eq(
%w[
owning_organisation
managing_organisation
created_by
completion_date
purchaser_code
ownership_scheme
shared_ownership_type
discounted_ownership_type
outright_ownership_type
buyer_company
buyer_live
joint_purchase
number_joint_buyers
buyer_interview
],
)
end
end end
end end

16
spec/services/bulk_upload/sales/year2024/row_parser_spec.rb

@ -287,7 +287,7 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort
expect(errors).to eql(%i[field_1 field_18 field_4 field_5 field_6 field_8]) expect(errors).to eql(%i[field_1 field_17 field_18 field_4 field_5 field_6 field_8])
end end
end end
@ -303,7 +303,7 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort
expect(errors).to eql(%i[field_1 field_15 field_18 field_4 field_5 field_6 field_9]) expect(errors).to eql(%i[field_1 field_15 field_17 field_18 field_4 field_5 field_6 field_9])
end end
end end
@ -321,7 +321,7 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort
expect(errors).to eql(%i[field_1 field_16 field_18 field_4 field_5 field_6]) expect(errors).to eql(%i[field_1 field_16 field_17 field_18 field_4 field_5 field_6])
end end
end end
@ -338,11 +338,11 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort
expect(errors).to eql(%i[field_1 field_10 field_15 field_18 field_4 field_5 field_6]) expect(errors).to eql(%i[field_1 field_10 field_15 field_17 field_18 field_4 field_5 field_6])
end end
end end
context "when setup section not complete it's discounted ownership joint purchase" do context "when setup section not complete and it's discounted ownership joint purchase" do
let(:attributes) do let(:attributes) do
{ {
bulk_upload:, bulk_upload:,
@ -356,7 +356,7 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort
expect(errors).to eql(%i[field_1 field_18 field_4 field_5 field_6 field_8]) expect(errors).to eql(%i[field_1 field_17 field_18 field_4 field_5 field_6 field_8])
end end
end end
@ -372,7 +372,7 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort
expect(errors).to eql(%i[field_1 field_11 field_13 field_14 field_18 field_4 field_5 field_6]) expect(errors).to eql(%i[field_1 field_11 field_13 field_14 field_17 field_18 field_4 field_5 field_6])
end end
end end
@ -390,7 +390,7 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort
expect(errors).to eql(%i[field_1 field_12 field_14 field_15 field_18 field_4 field_5 field_6]) expect(errors).to eql(%i[field_1 field_12 field_14 field_15 field_17 field_18 field_4 field_5 field_6])
end end
end end

Loading…
Cancel
Save