diff --git a/app/models/form/sales/pages/person1_known.rb b/app/models/form/sales/pages/person1_known.rb deleted file mode 100644 index 315dc5f02..000000000 --- a/app/models/form/sales/pages/person1_known.rb +++ /dev/null @@ -1,22 +0,0 @@ -class Form::Sales::Pages::Person1Known < ::Form::Page - def initialize(id, hsh, subsection) - super - @id = "person_1_known" - @header_partial = "person_1_known_page" - @header = "" - @description = "" - @subsection = subsection - @depends_on = [ - { "hholdcount" => 1 }, - { "hholdcount" => 2 }, - { "hholdcount" => 3 }, - { "hholdcount" => 4 }, - ] - end - - def questions - @questions ||= [ - Form::Sales::Questions::Person1Known.new(nil, nil, self), - ] - end -end diff --git a/app/models/form/sales/pages/person2_known.rb b/app/models/form/sales/pages/person2_known.rb deleted file mode 100644 index eb29c1cfd..000000000 --- a/app/models/form/sales/pages/person2_known.rb +++ /dev/null @@ -1,21 +0,0 @@ -class Form::Sales::Pages::Person2Known < ::Form::Page - def initialize(id, hsh, subsection) - super - @id = "person_2_known" - @header_partial = "person_2_known_page" - @header = "" - @description = "" - @subsection = subsection - @depends_on = [ - { "hholdcount" => 2, "details_known_1" => 1 }, - { "hholdcount" => 3, "details_known_1" => 1 }, - { "hholdcount" => 4, "details_known_1" => 1 }, - ] - end - - def questions - @questions ||= [ - Form::Sales::Questions::Person2Known.new(nil, nil, self), - ] - end -end diff --git a/app/models/form/sales/pages/person3_known.rb b/app/models/form/sales/pages/person3_known.rb deleted file mode 100644 index 7671a0de4..000000000 --- a/app/models/form/sales/pages/person3_known.rb +++ /dev/null @@ -1,20 +0,0 @@ -class Form::Sales::Pages::Person3Known < ::Form::Page - def initialize(id, hsh, subsection) - super - @id = "person_3_known" - @header_partial = "person_3_known_page" - @header = "" - @description = "" - @subsection = subsection - @depends_on = [ - { "hholdcount" => 3, "details_known_2" => 1 }, - { "hholdcount" => 4, "details_known_2" => 1 }, - ] - end - - def questions - @questions ||= [ - Form::Sales::Questions::Person3Known.new(nil, nil, self), - ] - end -end diff --git a/app/models/form/sales/pages/person4_known.rb b/app/models/form/sales/pages/person4_known.rb deleted file mode 100644 index c6c0208ea..000000000 --- a/app/models/form/sales/pages/person4_known.rb +++ /dev/null @@ -1,19 +0,0 @@ -class Form::Sales::Pages::Person4Known < ::Form::Page - def initialize(id, hsh, subsection) - super - @id = "person_4_known" - @header_partial = "person_4_known_page" - @header = "" - @description = "" - @subsection = subsection - @depends_on = [ - { "hholdcount" => 4, "details_known_3" => 1 }, - ] - end - - def questions - @questions ||= [ - Form::Sales::Questions::Person4Known.new(nil, nil, self), - ] - end -end diff --git a/app/models/form/sales/pages/person_age.rb b/app/models/form/sales/pages/person_age.rb index ed5f4e954..1eea81818 100644 --- a/app/models/form/sales/pages/person_age.rb +++ b/app/models/form/sales/pages/person_age.rb @@ -4,9 +4,7 @@ class Form::Sales::Pages::PersonAge < Form::Sales::Pages::Person @header = "" @description = "" @subsection = subsection - @depends_on = [ - { details_known_question_id => 1, "jointpur" => joint_purchase? ? 1 : 2 }, - ] + @depends_on = page_depends_on end def questions @@ -15,4 +13,10 @@ class Form::Sales::Pages::PersonAge < Form::Sales::Pages::Person Form::Sales::Questions::PersonAge.new(field_for_person("age"), nil, self, person_index: @person_index), ] end + + def page_depends_on + return (person_display_number..4).map { |index| { "hholdcount" => index, "jointpur" => joint_purchase? ? 1 : 2 } } if person_display_number == 1 + + [{ details_known_question_id => 1, "jointpur" => joint_purchase? ? 1 : 2 }] + end end diff --git a/app/models/form/sales/pages/person_known.rb b/app/models/form/sales/pages/person_known.rb index b8e40f3f8..8a2d29bba 100644 --- a/app/models/form/sales/pages/person_known.rb +++ b/app/models/form/sales/pages/person_known.rb @@ -15,8 +15,6 @@ class Form::Sales::Pages::PersonKnown < Form::Sales::Pages::Person end def page_depends_on - return (@person_index..4).map { |index| { "hholdcount" => index } } if @person_index == 1 - - (@person_index..4).map { |index| { "hholdcount" => index, "details_known_#{@person_index - 1}" => 1 } } + (@person_index..4).map { |index| { "hholdcount" => index } } end end diff --git a/app/models/form/sales/pages/person_working_situation.rb b/app/models/form/sales/pages/person_working_situation.rb index 92d90423c..f232f6a84 100644 --- a/app/models/form/sales/pages/person_working_situation.rb +++ b/app/models/form/sales/pages/person_working_situation.rb @@ -4,9 +4,7 @@ class Form::Sales::Pages::PersonWorkingSituation < Form::Sales::Pages::Person @header = "" @description = "" @subsection = subsection - @depends_on = [ - { details_known_question_id => 1, "jointpur" => joint_purchase? ? 1 : 2 }, - ] + @depends_on = page_depends_on end def questions @@ -14,4 +12,10 @@ class Form::Sales::Pages::PersonWorkingSituation < Form::Sales::Pages::Person Form::Sales::Questions::PersonWorkingSituation.new(field_for_person("ecstat"), nil, self, person_index: @person_index), ] end + + def page_depends_on + return (person_display_number..4).map { |index| { "hholdcount" => index, "jointpur" => joint_purchase? ? 1 : 2 } } if person_display_number == 1 + + [{ details_known_question_id => 1, "jointpur" => joint_purchase? ? 1 : 2 }] + end end diff --git a/app/models/form/sales/questions/person1_known.rb b/app/models/form/sales/questions/person1_known.rb deleted file mode 100644 index 6f7590101..000000000 --- a/app/models/form/sales/questions/person1_known.rb +++ /dev/null @@ -1,25 +0,0 @@ -class Form::Sales::Questions::Person1Known < ::Form::Question - def initialize(id, hsh, page) - super - @id = "details_known_1" - @check_answer_label = "Details known for person 1?" - @header = "Do you know the details for person 1?" - @type = "radio" - @answer_options = ANSWER_OPTIONS - @page = page - @hint_text = "" - @hidden_in_check_answers = { - "depends_on" => [ - { - "details_known_1" => 1, - }, - ], - } - @check_answers_card_number = 3 - end - - ANSWER_OPTIONS = { - "1" => { "value" => "Yes" }, - "2" => { "value" => "No" }, - }.freeze -end diff --git a/app/models/form/sales/questions/person2_known.rb b/app/models/form/sales/questions/person2_known.rb deleted file mode 100644 index b539590af..000000000 --- a/app/models/form/sales/questions/person2_known.rb +++ /dev/null @@ -1,25 +0,0 @@ -class Form::Sales::Questions::Person2Known < ::Form::Question - def initialize(id, hsh, page) - super - @id = "details_known_2" - @check_answer_label = "Details known for person 2?" - @header = "Do you know the details for person 2?" - @type = "radio" - @answer_options = ANSWER_OPTIONS - @page = page - @hint_text = "" - @hidden_in_check_answers = { - "depends_on" => [ - { - "details_known_2" => 1, - }, - ], - } - @check_answers_card_number = 4 - end - - ANSWER_OPTIONS = { - "1" => { "value" => "Yes" }, - "2" => { "value" => "No" }, - }.freeze -end diff --git a/app/models/form/sales/questions/person3_known.rb b/app/models/form/sales/questions/person3_known.rb deleted file mode 100644 index bcb37c151..000000000 --- a/app/models/form/sales/questions/person3_known.rb +++ /dev/null @@ -1,25 +0,0 @@ -class Form::Sales::Questions::Person3Known < ::Form::Question - def initialize(id, hsh, page) - super - @id = "details_known_3" - @check_answer_label = "Details known for person 3?" - @header = "Do you know the details for person 3?" - @type = "radio" - @answer_options = ANSWER_OPTIONS - @page = page - @hint_text = "" - @hidden_in_check_answers = { - "depends_on" => [ - { - "details_known_3" => 1, - }, - ], - } - @check_answers_card_number = 5 - end - - ANSWER_OPTIONS = { - "1" => { "value" => "Yes" }, - "2" => { "value" => "No" }, - }.freeze -end diff --git a/app/models/form/sales/questions/person4_known.rb b/app/models/form/sales/questions/person4_known.rb deleted file mode 100644 index 162bba06a..000000000 --- a/app/models/form/sales/questions/person4_known.rb +++ /dev/null @@ -1,25 +0,0 @@ -class Form::Sales::Questions::Person4Known < ::Form::Question - def initialize(id, hsh, page) - super - @id = "details_known_4" - @check_answer_label = "Details known for person 4?" - @header = "Do you know the details for person 4?" - @type = "radio" - @answer_options = ANSWER_OPTIONS - @page = page - @hint_text = "" - @hidden_in_check_answers = { - "depends_on" => [ - { - "details_known_4" => 1, - }, - ], - } - @check_answers_card_number = 6 - end - - ANSWER_OPTIONS = { - "1" => { "value" => "Yes" }, - "2" => { "value" => "No" }, - }.freeze -end diff --git a/app/views/form/headers/_person_1_known_page.erb b/app/views/form/headers/_person_1_known_page.erb deleted file mode 100644 index b179fcdb8..000000000 --- a/app/views/form/headers/_person_1_known_page.erb +++ /dev/null @@ -1 +0,0 @@ -You have given us the details for 0 of the <%= log.hholdcount %> other people in the household diff --git a/spec/models/form/sales/pages/person1_known_spec.rb b/spec/models/form/sales/pages/person1_known_spec.rb deleted file mode 100644 index 9353b82aa..000000000 --- a/spec/models/form/sales/pages/person1_known_spec.rb +++ /dev/null @@ -1,44 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Pages::Person1Known, 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[details_known_1]) - end - - it "has the correct id" do - expect(page.id).to eq("person_1_known") - end - - it "has the correct header" do - expect(page.header).to eq("") - end - - it "has the correct header_partial" do - expect(page.header_partial).to eq("person_1_known_page") - end - - it "has the correct description" do - expect(page.description).to eq("") - end - - it "has correct depends_on" do - expect(page.depends_on).to eq( - [ - { "hholdcount" => 1 }, - { "hholdcount" => 2 }, - { "hholdcount" => 3 }, - { "hholdcount" => 4 }, - ], - ) - end -end diff --git a/spec/models/form/sales/pages/person2_known_spec.rb b/spec/models/form/sales/pages/person2_known_spec.rb deleted file mode 100644 index 46ab592de..000000000 --- a/spec/models/form/sales/pages/person2_known_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Pages::Person2Known, 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[details_known_2]) - end - - it "has the correct id" do - expect(page.id).to eq("person_2_known") - end - - it "has the correct header" do - expect(page.header).to eq("") - end - - it "has the correct header_partial" do - expect(page.header_partial).to eq("person_2_known_page") - end - - it "has the correct description" do - expect(page.description).to eq("") - end - - it "has correct depends_on" do - expect(page.depends_on).to eq( - [ - { "hholdcount" => 2, "details_known_1" => 1 }, - { "hholdcount" => 3, "details_known_1" => 1 }, - { "hholdcount" => 4, "details_known_1" => 1 }, - ], - ) - end -end diff --git a/spec/models/form/sales/pages/person3_known_spec.rb b/spec/models/form/sales/pages/person3_known_spec.rb deleted file mode 100644 index ef4c1c34d..000000000 --- a/spec/models/form/sales/pages/person3_known_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Pages::Person3Known, 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[details_known_3]) - end - - it "has the correct id" do - expect(page.id).to eq("person_3_known") - end - - it "has the correct header" do - expect(page.header).to eq("") - end - - it "has the correct header_partial" do - expect(page.header_partial).to eq("person_3_known_page") - end - - it "has the correct description" do - expect(page.description).to eq("") - end - - it "has correct depends_on" do - expect(page.depends_on).to eq( - [ - { "details_known_2" => 1, "hholdcount" => 3 }, - { "details_known_2" => 1, "hholdcount" => 4 }, - ], - ) - end -end diff --git a/spec/models/form/sales/pages/person4_known_spec.rb b/spec/models/form/sales/pages/person4_known_spec.rb deleted file mode 100644 index 024c121c9..000000000 --- a/spec/models/form/sales/pages/person4_known_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Pages::Person4Known, 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[details_known_4]) - end - - it "has the correct id" do - expect(page.id).to eq("person_4_known") - end - - it "has the correct header" do - expect(page.header).to eq("") - end - - it "has the correct header_partial" do - expect(page.header_partial).to eq("person_4_known_page") - end - - it "has the correct description" do - expect(page.description).to eq("") - end - - it "has correct depends_on" do - expect(page.depends_on).to eq( - [ - { "details_known_3" => 1, "hholdcount" => 4 }, - ], - ) - end -end diff --git a/spec/models/form/sales/questions/person1_known_spec.rb b/spec/models/form/sales/questions/person1_known_spec.rb deleted file mode 100644 index e1207ea1b..000000000 --- a/spec/models/form/sales/questions/person1_known_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Questions::Person1Known, 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("details_known_1") - end - - it "has the correct header" do - expect(question.header).to eq("Do you know the details for person 1?") - end - - it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Details known for person 1?") - 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" => "Yes" }, - "2" => { "value" => "No" }, - }) - end - - it "has correct conditional for" do - expect(question.conditional_for).to eq(nil) - end - - it "has the correct hint" do - expect(question.hint_text).to eq("") - end - - it "has the correct hidden_in_check_answers" do - expect(question.hidden_in_check_answers).to eq( - { - "depends_on" => [ - { - "details_known_1" => 1, - }, - ], - }, - ) - end - - it "has the correct check_answers_card_number" do - expect(question.check_answers_card_number).to eq(3) - end -end diff --git a/spec/models/form/sales/questions/person2_known_spec.rb b/spec/models/form/sales/questions/person2_known_spec.rb deleted file mode 100644 index 6d76874df..000000000 --- a/spec/models/form/sales/questions/person2_known_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Questions::Person2Known, 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("details_known_2") - end - - it "has the correct header" do - expect(question.header).to eq("Do you know the details for person 2?") - end - - it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Details known for person 2?") - 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" => "Yes" }, - "2" => { "value" => "No" }, - }) - end - - it "has correct conditional for" do - expect(question.conditional_for).to eq(nil) - end - - it "has the correct hint" do - expect(question.hint_text).to eq("") - end - - it "has the correct hidden_in_check_answers" do - expect(question.hidden_in_check_answers).to eq( - { - "depends_on" => [ - { - "details_known_2" => 1, - }, - ], - }, - ) - end - - it "has the correct check_answers_card_number" do - expect(question.check_answers_card_number).to eq(4) - end -end diff --git a/spec/models/form/sales/questions/person3_known_spec.rb b/spec/models/form/sales/questions/person3_known_spec.rb deleted file mode 100644 index 39efdcb3a..000000000 --- a/spec/models/form/sales/questions/person3_known_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Questions::Person3Known, 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("details_known_3") - end - - it "has the correct header" do - expect(question.header).to eq("Do you know the details for person 3?") - end - - it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Details known for person 3?") - 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" => "Yes" }, - "2" => { "value" => "No" }, - }) - end - - it "has correct conditional for" do - expect(question.conditional_for).to eq(nil) - end - - it "has the correct hint" do - expect(question.hint_text).to eq("") - end - - it "has the correct hidden_in_check_answers" do - expect(question.hidden_in_check_answers).to eq( - { - "depends_on" => [ - { - "details_known_3" => 1, - }, - ], - }, - ) - end - - it "has the correct check_answers_card_number" do - expect(question.check_answers_card_number).to eq(5) - end -end diff --git a/spec/models/form/sales/questions/person4_known_spec.rb b/spec/models/form/sales/questions/person4_known_spec.rb deleted file mode 100644 index f23dfa741..000000000 --- a/spec/models/form/sales/questions/person4_known_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Questions::Person4Known, 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("details_known_4") - end - - it "has the correct header" do - expect(question.header).to eq("Do you know the details for person 4?") - end - - it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Details known for person 4?") - 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" => "Yes" }, - "2" => { "value" => "No" }, - }) - end - - it "has correct conditional for" do - expect(question.conditional_for).to eq(nil) - end - - it "has the correct hint" do - expect(question.hint_text).to eq("") - end - - it "has the correct hidden_in_check_answers" do - expect(question.hidden_in_check_answers).to eq( - { - "depends_on" => [ - { - "details_known_4" => 1, - }, - ], - }, - ) - end - - it "has the correct check_answers_card_number" do - expect(question.check_answers_card_number).to eq(6) - end -end