diff --git a/spec/models/form/sales/pages/person_known_spec.rb b/spec/models/form/sales/pages/person_known_spec.rb index 0dc454143..faf4c5b1b 100644 --- a/spec/models/form/sales/pages/person_known_spec.rb +++ b/spec/models/form/sales/pages/person_known_spec.rb @@ -3,117 +3,229 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::PersonKnown, type: :model do subject(:page) { described_class.new(page_id, page_definition, subsection, person_index:) } - let(:page_id) { "person_2_known" } - let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } - let(:person_index) { 1 } + context "without joint purchase" do + let(:page_id) { "person_2_known" } + 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) - end + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end - it "has the correct header" do - expect(page.header).to eq("") - end + it "has the correct header" do + expect(page.header).to eq("") + end - it "has the correct description" do - expect(page.description).to eq("") - end + it "has the correct description" do + expect(page.description).to eq("") + end - context "with person 1" do - let(:page_id) { "person_1_known" } - let(:person_index) { 1 } + context "with person 1" do + let(:page_id) { "person_1_known" } + let(:person_index) { 2 } + + 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 correct questions" do - expect(page.questions.map(&:id)).to eq(%w[details_known_1]) + it "has the correct header_partial" do + expect(page.header_partial).to eq("person_1_known_page") + end + + it "has correct depends_on" do + expect(page.depends_on).to eq( + [ + { "hholdcount" => 1, "jointpur" => 2 }, { "hholdcount" => 2, "jointpur" => 2 }, { "hholdcount" => 3, "jointpur" => 2 }, { "hholdcount" => 4, "jointpur" => 2 } + ], + ) + end end - it "has the correct id" do - expect(page.id).to eq("person_1_known") + context "with person 2" do + let(:page_id) { "person_2_known" } + let(:person_index) { 3 } + + 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_partial" do + expect(page.header_partial).to eq("person_2_known_page") + end + + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "hholdcount" => 2, "jointpur" => 2 }, { "hholdcount" => 3, "jointpur" => 2 }, { "hholdcount" => 4, "jointpur" => 2 }], + ) + end end - it "has the correct header_partial" do - expect(page.header_partial).to eq("person_1_known_page") + context "with person 3" do + let(:page_id) { "person_3_known" } + let(:person_index) { 4 } + + 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_partial" do + expect(page.header_partial).to eq("person_3_known_page") + end + + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "hholdcount" => 3, "jointpur" => 2 }, { "hholdcount" => 4, "jointpur" => 2 }], + ) + end end - it "has correct depends_on" do - expect(page.depends_on).to eq( - [ - { "hholdcount" => 1 }, - { "hholdcount" => 2 }, - { "hholdcount" => 3 }, - { "hholdcount" => 4 }, - ], - ) + context "with person 4" do + let(:page_id) { "person_4_known" } + let(:person_index) { 5 } + + 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_partial" do + expect(page.header_partial).to eq("person_4_known_page") + end + + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "hholdcount" => 4, "jointpur" => 2 }], + ) + end end end - context "with person 2" do + context "with joint purchase" do let(:page_id) { "person_2_known" } - let(:person_index) { 2 } + let(:page_definition) { nil } + let(:subsection) { instance_double(Form::Subsection) } + let(:person_index) { 1 } - it "has correct questions" do - expect(page.questions.map(&:id)).to eq(%w[details_known_2]) + it "has correct subsection" do + expect(page.subsection).to eq(subsection) end - it "has the correct id" do - expect(page.id).to eq("person_2_known") + 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") + 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 }, { "hholdcount" => 3 }, { "hholdcount" => 4 }], - ) - end - end + context "with person 1" do + let(:page_id) { "person_1_known_joint_purchase" } + let(:person_index) { 3 } - context "with person 3" do - let(:page_id) { "person_3_known" } - let(:person_index) { 3 } + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[details_known_1]) + 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_1_known_joint_purchase") + end - it "has the correct id" do - expect(page.id).to eq("person_3_known") - end + it "has the correct header_partial" do + expect(page.header_partial).to eq("person_1_known_page") + end - it "has the correct header_partial" do - expect(page.header_partial).to eq("person_3_known_page") + it "has correct depends_on" do + expect(page.depends_on).to eq( + [ + { "hholdcount" => 1, "jointpur" => 1 }, { "hholdcount" => 2, "jointpur" => 1 }, { "hholdcount" => 3, "jointpur" => 1 }, { "hholdcount" => 4, "jointpur" => 1 } + ], + ) + end end - it "has correct depends_on" do - expect(page.depends_on).to eq( - [{ "hholdcount" => 3 }, { "hholdcount" => 4 }], - ) - end - end + context "with person 2" do + let(:page_id) { "person_2_known_joint_purchase" } + let(:person_index) { 4 } - context "with person 4" do - let(:page_id) { "person_4_known" } - let(:person_index) { 4 } + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[details_known_2]) + 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_2_known_joint_purchase") + end + + it "has the correct header_partial" do + expect(page.header_partial).to eq("person_2_known_page") + end - it "has the correct id" do - expect(page.id).to eq("person_4_known") + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "hholdcount" => 2, "jointpur" => 1 }, { "hholdcount" => 3, "jointpur" => 1 }, { "hholdcount" => 4, "jointpur" => 1 }], + ) + end end - it "has the correct header_partial" do - expect(page.header_partial).to eq("person_4_known_page") + context "with person 3" do + let(:page_id) { "person_3_known_joint_purchase" } + let(:person_index) { 5 } + + 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_joint_purchase") + end + + it "has the correct header_partial" do + expect(page.header_partial).to eq("person_3_known_page") + end + + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "hholdcount" => 3, "jointpur" => 1 }, { "hholdcount" => 4, "jointpur" => 1 }], + ) + end end - it "has correct depends_on" do - expect(page.depends_on).to eq( - [{ "hholdcount" => 4 }], - ) + context "with person 4" do + let(:page_id) { "person_4_known_joint_purchase" } + let(:person_index) { 6 } + + 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_joint_purchase") + end + + it "has the correct header_partial" do + expect(page.header_partial).to eq("person_4_known_page") + end + + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "hholdcount" => 4, "jointpur" => 1 }], + ) + end end end end diff --git a/spec/models/form/sales/pages/person_working_situation_spec.rb b/spec/models/form/sales/pages/person_working_situation_spec.rb index e38d5ff47..65bdb42d0 100644 --- a/spec/models/form/sales/pages/person_working_situation_spec.rb +++ b/spec/models/form/sales/pages/person_working_situation_spec.rb @@ -35,7 +35,7 @@ RSpec.describe Form::Sales::Pages::PersonWorkingSituation, type: :model do end it "has correct depends_on" do - expect(page.depends_on).to eq([{ "hholdcount" => 1, "jointpur" => 2 }, { "hholdcount" => 2, "jointpur" => 2 }, { "hholdcount" => 3, "jointpur" => 2 }, { "hholdcount" => 4, "jointpur" => 2 }]) + expect(page.depends_on).to eq([{ "details_known_1" => 1, "jointpur" => 2 }]) end end @@ -119,7 +119,7 @@ RSpec.describe Form::Sales::Pages::PersonWorkingSituation, type: :model do end it "has correct depends_on" do - expect(page.depends_on).to eq([{ "hholdcount" => 1, "jointpur" => 1 }, { "hholdcount" => 2, "jointpur" => 1 }, { "hholdcount" => 3, "jointpur" => 1 }, { "hholdcount" => 4, "jointpur" => 1 }]) + expect(page.depends_on).to eq([{ "details_known_1" => 1, "jointpur" => 1 }]) end end