Browse Source

CLDC-4166: test updates

pull/3194/head
Nat Dean-Lewis 2 months ago
parent
commit
530418142c
  1. 34
      spec/models/form/sales/pages/number_of_others_in_property_spec.rb
  2. 54
      spec/models/form/sales/pages/person_known_spec.rb

34
spec/models/form/sales/pages/number_of_others_in_property_spec.rb

@ -1,13 +1,19 @@
require "rails_helper" require "rails_helper"
RSpec.describe Form::Sales::Pages::NumberOfOthersInProperty, type: :model do RSpec.describe Form::Sales::Pages::NumberOfOthersInProperty, type: :model do
include CollectionTimeHelper
subject(:page) { described_class.new(page_id, page_definition, subsection, joint_purchase:) } subject(:page) { described_class.new(page_id, page_definition, subsection, joint_purchase:) }
let(:page_id) { "number_of_others_in_property" } let(:page_id) { "number_of_others_in_property" }
let(:page_definition) { nil } let(:page_definition) { nil }
let(:joint_purchase) { false } let(:joint_purchase) { false }
let(:form) { Form.new(nil, 2024, [], "sales") } let(:form) { instance_double(Form, start_date: current_collection_start_date, start_year_2026_or_later?: true, start_year_2025_or_later?: false, depends_on_met: true) }
let(:subsection) { instance_double(Form::Subsection, form:, enabled?: true, depends_on: nil) } let(:subsection) { instance_double(Form::Subsection, enabled?: true, depends_on: nil) }
before do
allow(subsection).to receive(:form).and_return(form)
end
it "has correct subsection" do it "has correct subsection" do
expect(page.subsection).to eq(subsection) expect(page.subsection).to eq(subsection)
@ -39,6 +45,8 @@ RSpec.describe Form::Sales::Pages::NumberOfOthersInProperty, type: :model do
end end
context "with 2024 logs" do context "with 2024 logs" do
let(:form) { instance_double(Form, start_date: collection_start_date_for_year(2024), start_year_2026_or_later?: false, start_year_2025_or_later?: false, depends_on_met: true) }
context "with joint purchase" do context "with joint purchase" do
context "when buyer has seen privacy notice and buyer interviewed" do context "when buyer has seen privacy notice and buyer interviewed" do
let(:log) { build(:sales_log, privacynotice: 1, jointpur: 1, noint: 0) } let(:log) { build(:sales_log, privacynotice: 1, jointpur: 1, noint: 0) }
@ -109,7 +117,27 @@ RSpec.describe Form::Sales::Pages::NumberOfOthersInProperty, type: :model do
end end
context "with 2025 logs" do context "with 2025 logs" do
let(:form) { Form.new(nil, 2025, [], "sales") } let(:form) { instance_double(Form, start_date: collection_start_date_for_year(2025), start_year_2026_or_later?: false, start_year_2025_or_later?: true, depends_on_met: true) }
context "and staircase is not 1" do
let(:log) { build(:sales_log, privacynotice: 1, jointpur: 1, noint: 0, staircase: 2) }
it "routes to the page" do
expect(page.routed_to?(log, nil)).to be(true)
end
end
context "and staircase is 1" do
let(:log) { build(:sales_log, privacynotice: 1, jointpur: 1, noint: 0, staircase: 1) }
it "does not route to the page" do
expect(page).not_to be_routed_to(log, nil)
end
end
end
context "with 2026 logs" do
let(:form) { instance_double(Form, start_date: current_collection_start_date, start_year_2026_or_later?: true, start_year_2025_or_later?: true, depends_on_met: true) }
context "and staircase is not 1" do context "and staircase is not 1" do
let(:log) { build(:sales_log, privacynotice: 1, jointpur: 1, noint: 0, staircase: 2) } let(:log) { build(:sales_log, privacynotice: 1, jointpur: 1, noint: 0, staircase: 2) }

54
spec/models/form/sales/pages/person_known_spec.rb

@ -7,8 +7,8 @@ RSpec.describe Form::Sales::Pages::PersonKnown, type: :model do
let(:page_definition) { nil } let(:page_definition) { nil }
let(:person_index) { 2 } let(:person_index) { 2 }
context "with 2024 form" do context "with pre-2026 form" do
let(:form) { Form.new(nil, 2024, [], "sales") } let(:form) { instance_double(Form, start_year_2026_or_later?: false) }
let(:subsection) { instance_double(Form::Subsection, form:) } let(:subsection) { instance_double(Form::Subsection, form:) }
it "has correct subsection" do it "has correct subsection" do
@ -154,10 +154,34 @@ RSpec.describe Form::Sales::Pages::PersonKnown, type: :model do
]) ])
end end
end end
context "with person 6" do
let(:page_id) { "person_6_known" }
let(:person_index) { 6 }
it "has correct depends_on" do
expect(page.depends_on).to eq([
{
"not_joint_purchase?" => true,
"hholdcount" => {
"operator" => ">=",
"operand" => 5,
},
},
{
"joint_purchase?" => true,
"hholdcount" => {
"operator" => ">=",
"operand" => 4,
},
},
])
end
end
end end
context "with 2026 form" do context "with 2026 form" do
let(:form) { Form.new(nil, 2026, [], "sales") } let(:form) { instance_double(Form, start_year_2026_or_later?: true) }
let(:subsection) { instance_double(Form::Subsection, form:) } let(:subsection) { instance_double(Form::Subsection, form:) }
context "with person 2" do context "with person 2" do
@ -246,5 +270,29 @@ RSpec.describe Form::Sales::Pages::PersonKnown, type: :model do
]) ])
end end
end end
context "with person 6" do
let(:page_id) { "person_6_known" }
let(:person_index) { 6 }
it "has correct depends_on" do
expect(page.depends_on).to eq([
{
"not_joint_purchase?" => true,
"hholdcount" => {
"operator" => ">=",
"operand" => 6,
},
},
{
"joint_purchase?" => true,
"hholdcount" => {
"operator" => ">=",
"operand" => 6,
},
},
])
end
end
end end
end end

Loading…
Cancel
Save