From 5818e67cb96cc463370ee30121b6f40ea27bc167 Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 15 Dec 2022 13:06:58 +0000 Subject: [PATCH] Refactor age to take in person index --- app/models/form/sales/pages/person_age.rb | 12 +++---- app/models/form/sales/questions/person_age.rb | 26 +++++++-------- .../form/sales/questions/person_age_known.rb | 32 +++++++++---------- .../subsections/household_characteristics.rb | 16 +++++----- .../form/sales/pages/person_age_spec.rb | 11 ++++++- .../sales/questions/person_age_known_spec.rb | 11 ++++++- .../form/sales/questions/person_age_spec.rb | 11 ++++++- 7 files changed, 73 insertions(+), 46 deletions(-) diff --git a/app/models/form/sales/pages/person_age.rb b/app/models/form/sales/pages/person_age.rb index b25284685..5aba8acdd 100644 --- a/app/models/form/sales/pages/person_age.rb +++ b/app/models/form/sales/pages/person_age.rb @@ -1,11 +1,11 @@ -class Form::Sales::Pages::PersonAge < ::Form::Page - def initialize(id, hsh, subsection) - super +class Form::Sales::Pages::PersonAge < Form::Sales::Pages::Person + def initialize(id, hsh, subsection, person_index) + super(id, hsh, subsection, person_index) @header = "" @description = "" @subsection = subsection @depends_on = [ - { "details_known_#{person_display_number(PERSON_INDEX)}" => 1, "jointpur" => joint_purchase? ? 1 : 2 }, + { "details_known_#{person_display_number}" => 1, "jointpur" => joint_purchase? ? 1 : 2 }, ] end @@ -22,8 +22,8 @@ class Form::Sales::Pages::PersonAge < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::PersonAgeKnown.new("age#{person_database_number(PERSON_INDEX)}_known", nil, self), - Form::Sales::Questions::PersonAge.new("age#{person_database_number(PERSON_INDEX)}", nil, self), + Form::Sales::Questions::PersonAgeKnown.new("age#{@person_index}_known", nil, self, @person_index), + Form::Sales::Questions::PersonAge.new("age#{@person_index}", nil, self, @person_index), ] end end diff --git a/app/models/form/sales/questions/person_age.rb b/app/models/form/sales/questions/person_age.rb index 2e776b2d0..a82a21216 100644 --- a/app/models/form/sales/questions/person_age.rb +++ b/app/models/form/sales/questions/person_age.rb @@ -1,23 +1,23 @@ -class Form::Sales::Questions::PersonAge < ::Form::Question - def initialize(id, hsh, page) - super - @check_answer_label = "Person #{person_display_number(PERSON_INDEX)}’s age" +class Form::Sales::Questions::PersonAge < Form::Sales::Questions::Person + def initialize(id, hsh, page, person_index) + super(id, hsh, page, person_index) + @check_answer_label = "Person #{person_display_number}’s age" @header = "Age" @type = "numeric" @page = page @width = 3 @inferred_check_answers_value = { - "condition" => { "age#{person_database_number(PERSON_INDEX)}_known" => 1 }, + "condition" => { "age#{person_index}_known" => 1 }, "value" => "Not known", } - @check_answers_card_number = person_database_number(PERSON_INDEX) + @check_answers_card_number = person_index end - PERSON_INDEX = { - "age2" => 2, - "age3" => 3, - "age4" => 4, - "age5" => 5, - "age6" => 6, - }.freeze + # PERSON_INDEX = { + # "age2" => 2, + # "age3" => 3, + # "age4" => 4, + # "age5" => 5, + # "age6" => 6, + # }.freeze end diff --git a/app/models/form/sales/questions/person_age_known.rb b/app/models/form/sales/questions/person_age_known.rb index be69a84c8..a81147fb8 100644 --- a/app/models/form/sales/questions/person_age_known.rb +++ b/app/models/form/sales/questions/person_age_known.rb @@ -1,26 +1,26 @@ -class Form::Sales::Questions::PersonAgeKnown < ::Form::Question - def initialize(id, hsh, page) - super - @check_answer_label = "Person #{person_display_number(PERSON_INDEX)}’s age known?" - @header = "Do you know person #{person_display_number(PERSON_INDEX)}’s age?" +class Form::Sales::Questions::PersonAgeKnown < ::Form::Sales::Questions::Person + def initialize(id, hsh, page, person_index) + super(id, hsh, page, person_index) + @check_answer_label = "Person #{person_display_number}’s age known?" + @header = "Do you know person #{person_display_number}’s age?" @type = "radio" @answer_options = ANSWER_OPTIONS @page = page @hint_text = "" @conditional_for = { - "age#{person_database_number(PERSON_INDEX)}" => [0], + "age#{@person_index}" => [0], } @hidden_in_check_answers = { "depends_on" => [ { - "age#{person_database_number(PERSON_INDEX)}_known" => 0, + "age#{@person_index}_known" => 0, }, { - "age#{person_database_number(PERSON_INDEX)}_known" => 1, + "age#{@person_index}_known" => 1, }, ], } - @check_answers_card_number = person_database_number(PERSON_INDEX) + @check_answers_card_number = @person_index end ANSWER_OPTIONS = { @@ -28,11 +28,11 @@ class Form::Sales::Questions::PersonAgeKnown < ::Form::Question "1" => { "value" => "No" }, }.freeze - PERSON_INDEX = { - "age2_known" => 2, - "age3_known" => 3, - "age4_known" => 4, - "age5_known" => 5, - "age6_known" => 6, - }.freeze + # PERSON_INDEX = { + # "age2_known" => 2, + # "age3_known" => 3, + # "age4_known" => 4, + # "age5_known" => 5, + # "age6_known" => 6, + # }.freeze end diff --git a/app/models/form/sales/subsections/household_characteristics.rb b/app/models/form/sales/subsections/household_characteristics.rb index 28ab9849b..724678346 100644 --- a/app/models/form/sales/subsections/household_characteristics.rb +++ b/app/models/form/sales/subsections/household_characteristics.rb @@ -30,25 +30,25 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Sales::Pages::Buyer2LiveInProperty.new(nil, nil, self), Form::Sales::Pages::NumberOfOthersInProperty.new(nil, nil, self), Form::Sales::Pages::Person1Known.new(nil, nil, self), - Form::Sales::Pages::PersonAge.new("person_1_age", nil, self), - Form::Sales::Pages::PersonAge.new("person_1_age_joint_purchase", nil, self), + Form::Sales::Pages::PersonAge.new("person_1_age", nil, self, 2), + Form::Sales::Pages::PersonAge.new("person_1_age_joint_purchase", nil, self, 3), Form::Sales::Pages::Person1GenderIdentity.new(nil, nil, self), Form::Sales::Pages::Person1GenderIdentityJointPurchase.new(nil, nil, self), Form::Sales::Pages::PersonWorkingSituation.new("person_1_working_situation", nil, self, 2), Form::Sales::Pages::PersonWorkingSituation.new("person_1_working_situation_joint_purchase", nil, self, 3), Form::Sales::Pages::Person2Known.new(nil, nil, self), - Form::Sales::Pages::PersonAge.new("person_2_age", nil, self), - Form::Sales::Pages::PersonAge.new("person_2_age_joint_purchase", nil, self), + Form::Sales::Pages::PersonAge.new("person_2_age", nil, self, 3), + Form::Sales::Pages::PersonAge.new("person_2_age_joint_purchase", nil, self, 4), Form::Sales::Pages::PersonWorkingSituation.new("person_2_working_situation", nil, self, 3), Form::Sales::Pages::PersonWorkingSituation.new("person_2_working_situation_joint_purchase", nil, self, 4), Form::Sales::Pages::Person3Known.new(nil, nil, self), - Form::Sales::Pages::PersonAge.new("person_3_age", nil, self), - Form::Sales::Pages::PersonAge.new("person_3_age_joint_purchase", nil, self), + Form::Sales::Pages::PersonAge.new("person_3_age", nil, self, 4), + Form::Sales::Pages::PersonAge.new("person_3_age_joint_purchase", nil, self, 5), Form::Sales::Pages::PersonWorkingSituation.new("person_3_working_situation", nil, self, 4), Form::Sales::Pages::PersonWorkingSituation.new("person_3_working_situation_joint_purchase", nil, self, 5), Form::Sales::Pages::Person4Known.new(nil, nil, self), - Form::Sales::Pages::PersonAge.new("person_4_age", nil, self), - Form::Sales::Pages::PersonAge.new("person_4_age_joint_purchase", nil, self), + Form::Sales::Pages::PersonAge.new("person_4_age", nil, self, 5), + Form::Sales::Pages::PersonAge.new("person_4_age_joint_purchase", nil, self, 6), Form::Sales::Pages::PersonWorkingSituation.new("person_4_working_situation", nil, self, 5), Form::Sales::Pages::PersonWorkingSituation.new("person_4_working_situation_joint_purchase", nil, self, 6), ] diff --git a/spec/models/form/sales/pages/person_age_spec.rb b/spec/models/form/sales/pages/person_age_spec.rb index 21255e80e..5d663f04f 100644 --- a/spec/models/form/sales/pages/person_age_spec.rb +++ b/spec/models/form/sales/pages/person_age_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::PersonAge, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, person_index) } let(:page_id) { "person_1_age" } let(:page_definition) { nil } let(:subsection) { instance_double(Form::Subsection) } + let(:person_index) { 1 } it "has correct subsection" do expect(page.subsection).to eq(subsection) @@ -22,6 +23,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do context "with a non joint purchase" do context "and person 1" do let(:page_id) { "person_1_age" } + let(:person_index) { 2 } it "has correct questions" do expect(page.questions.map(&:id)).to eq(%w[age2_known age2]) @@ -42,6 +44,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do context "and person 2" do let(:page_id) { "person_2_age" } + let(:person_index) { 3 } it "has correct questions" do expect(page.questions.map(&:id)).to eq(%w[age3_known age3]) @@ -62,6 +65,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do context "and person 3" do let(:page_id) { "person_3_age" } + let(:person_index) { 4 } it "has correct questions" do expect(page.questions.map(&:id)).to eq(%w[age4_known age4]) @@ -82,6 +86,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do context "and person 4" do let(:page_id) { "person_4_age" } + let(:person_index) { 5 } it "has correct questions" do expect(page.questions.map(&:id)).to eq(%w[age5_known age5]) @@ -104,6 +109,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do context "with joint purchase" do context "and person 1" do let(:page_id) { "person_1_age_joint_purchase" } + let(:person_index) { 3 } it "has correct questions" do expect(page.questions.map(&:id)).to eq(%w[age3_known age3]) @@ -124,6 +130,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do context "and person 2" do let(:page_id) { "person_2_age_joint_purchase" } + let(:person_index) { 4 } it "has correct questions" do expect(page.questions.map(&:id)).to eq(%w[age4_known age4]) @@ -144,6 +151,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do context "and person 3" do let(:page_id) { "person_3_age_joint_purchase" } + let(:person_index) { 5 } it "has correct questions" do expect(page.questions.map(&:id)).to eq(%w[age5_known age5]) @@ -164,6 +172,7 @@ RSpec.describe Form::Sales::Pages::PersonAge, type: :model do context "and person 4" do let(:page_id) { "person_4_age_joint_purchase" } + let(:person_index) { 6 } it "has correct questions" do expect(page.questions.map(&:id)).to eq(%w[age6_known age6]) diff --git a/spec/models/form/sales/questions/person_age_known_spec.rb b/spec/models/form/sales/questions/person_age_known_spec.rb index d7e6e1a2a..d34c7378e 100644 --- a/spec/models/form/sales/questions/person_age_known_spec.rb +++ b/spec/models/form/sales/questions/person_age_known_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, person_index) } let(:question_id) { "age3_known" } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } + let(:person_index) { 2 } before do allow(page).to receive(:id).and_return("person_1_age") @@ -37,6 +38,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do context "with a non joint purchase" do context "and person 1" do let(:question_id) { "age2_known" } + let(:person_index) { 2 } before do allow(page).to receive(:id).and_return("person_1_age") @@ -82,6 +84,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do context "and person 2" do let(:question_id) { "age3_known" } + let(:person_index) { 3 } before do allow(page).to receive(:id).and_return("person_2_age") @@ -127,6 +130,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do context "and person 3" do let(:question_id) { "age4_known" } + let(:person_index) { 4 } before do allow(page).to receive(:id).and_return("person_3_age") @@ -172,6 +176,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do context "and person 4" do let(:question_id) { "age5_known" } + let(:person_index) { 5 } before do allow(page).to receive(:id).and_return("person_4_age") @@ -219,6 +224,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do context "with a joint purchase" do context "and person 1" do let(:question_id) { "age3_known" } + let(:person_index) { 3 } before do allow(page).to receive(:id).and_return("person_1_age_joint_purchase") @@ -264,6 +270,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do context "and person 2" do let(:question_id) { "age4_known" } + let(:person_index) { 4 } before do allow(page).to receive(:id).and_return("person_2_age_joint_purchase") @@ -309,6 +316,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do context "and person 3" do let(:question_id) { "age5_known" } + let(:person_index) { 5 } before do allow(page).to receive(:id).and_return("person_3_age_joint_purchase") @@ -354,6 +362,7 @@ RSpec.describe Form::Sales::Questions::PersonAgeKnown, type: :model do context "and person 4" do let(:question_id) { "age6_known" } + let(:person_index) { 6 } before do allow(page).to receive(:id).and_return("person_4_age_joint_purchase") diff --git a/spec/models/form/sales/questions/person_age_spec.rb b/spec/models/form/sales/questions/person_age_spec.rb index 3db41e806..3214957dd 100644 --- a/spec/models/form/sales/questions/person_age_spec.rb +++ b/spec/models/form/sales/questions/person_age_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::PersonAge, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, person_index) } let(:question_id) { "age3" } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } + let(:person_index) { 2 } before do allow(page).to receive(:id).and_return("person_1_age") @@ -33,6 +34,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do context "with not a joint purchase" do context "and person 1" do + let(:person_index) { 2 } let(:question_id) { "age2" } before do @@ -64,6 +66,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do end context "and person 2" do + let(:person_index) { 3 } let(:question_id) { "age3" } before do @@ -95,6 +98,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do end context "and person 3" do + let(:person_index) { 4 } let(:question_id) { "age4" } before do @@ -126,6 +130,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do end context "and person 4" do + let(:person_index) { 5 } let(:question_id) { "age5" } before do @@ -159,6 +164,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do context "with a joint purchase" do context "and person 1" do + let(:person_index) { 3 } let(:question_id) { "age3" } before do @@ -190,6 +196,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do end context "and person 2" do + let(:person_index) { 4 } let(:question_id) { "age4" } before do @@ -221,6 +228,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do end context "and person 3" do + let(:person_index) { 5 } let(:question_id) { "age5" } before do @@ -252,6 +260,7 @@ RSpec.describe Form::Sales::Questions::PersonAge, type: :model do end context "and person 4" do + let(:person_index) { 6 } let(:question_id) { "age6" } before do