Browse Source

CLDC-4145: Add a depends_on to ensure partner is hidden

pull/3145/merge
Samuel Young 3 days ago
parent
commit
dc6150c6a4
  1. 17
      app/models/form/lettings/pages/person_lead_partner.rb
  2. 77
      spec/models/form/lettings/pages/person_lead_partner_spec.rb

17
app/models/form/lettings/pages/person_lead_partner.rb

@ -9,4 +9,21 @@ class Form::Lettings::Pages::PersonLeadPartner < ::Form::Page
def questions def questions
@questions ||= [Form::Lettings::Questions::PersonPartner.new(nil, nil, self, person_index: @person_index)] @questions ||= [Form::Lettings::Questions::PersonPartner.new(nil, nil, self, person_index: @person_index)]
end end
def depends_on
if form.start_year_2026_or_later?
[
{
"details_known_#{@person_index}" => 0,
"age#{@person_index}" => {
"operator" => ">=",
"operand" => 16,
},
},
{ "details_known_#{@person_index}" => 0, "age#{@person_index}" => nil },
]
else
[{ "details_known_#{@person_index}" => 0 }]
end
end
end end

77
spec/models/form/lettings/pages/person_lead_partner_spec.rb

@ -4,9 +4,14 @@ RSpec.describe Form::Lettings::Pages::PersonLeadPartner, type: :model do
subject(:page) { described_class.new(nil, page_definition, subsection, person_index:) } subject(:page) { described_class.new(nil, page_definition, subsection, person_index:) }
let(:page_definition) { nil } let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2025_or_later?: true)) } let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) }
let(:subsection) { instance_double(Form::Subsection, form:) }
let(:person_index) { 2 } let(:person_index) { 2 }
before do
allow(form).to receive(:start_year_2026_or_later?).and_return(false)
end
it "has correct subsection" do it "has correct subsection" do
expect(page.subsection).to eq(subsection) expect(page.subsection).to eq(subsection)
end end
@ -24,10 +29,37 @@ RSpec.describe Form::Lettings::Pages::PersonLeadPartner, type: :model do
expect(page.id).to eq("person_2_lead_partner") expect(page.id).to eq("person_2_lead_partner")
end end
it "has correct depends_on" do context "with start year >= 2025", metadata: { year: 25 } do
expect(page.depends_on).to eq( before do
[{ "details_known_2" => 0 }], allow(form).to receive(:start_year_2026_or_later?).and_return(false)
) end
it "has correct depends_on" do
expect(page.depends_on).to eq(
[{ "details_known_2" => 0 }],
)
end
end
context "with start year >= 2026", metadata: { year: 26 } do
before do
allow(form).to receive(:start_year_2026_or_later?).and_return(true)
end
it "has correct depends_on" do
expect(page.depends_on).to eq(
[
{
"details_known_2" => 0,
"age2" => {
"operator" => ">=",
"operand" => 16,
},
},
{ "details_known_2" => 0, "age2" => nil },
],
)
end
end end
end end
@ -42,10 +74,37 @@ RSpec.describe Form::Lettings::Pages::PersonLeadPartner, type: :model do
expect(page.id).to eq("person_3_lead_partner") expect(page.id).to eq("person_3_lead_partner")
end end
it "has correct depends_on" do context "with start year >= 2025", metadata: { year: 25 } do
expect(page.depends_on).to eq( before do
[{ "details_known_3" => 0 }], allow(form).to receive(:start_year_2026_or_later?).and_return(false)
) end
it "has correct depends_on" do
expect(page.depends_on).to eq(
[{ "details_known_3" => 0 }],
)
end
end
context "with start year >= 2026", metadata: { year: 26 } do
before do
allow(form).to receive(:start_year_2026_or_later?).and_return(true)
end
it "has correct depends_on" do
expect(page.depends_on).to eq(
[
{
"details_known_3" => 0,
"age3" => {
"operator" => ">=",
"operand" => 16,
},
},
{ "details_known_3" => 0, "age3" => nil },
],
)
end
end end
end end
end end

Loading…
Cancel
Save