Browse Source

Correct hidden_in_check_answers logic

CLDC-4146-infer-no-other-partners
oscar-richardson-softwire 1 week ago
parent
commit
9e7198860f
  1. 15
      app/models/form/lettings/questions/person_partner.rb
  2. 80
      spec/models/form/lettings/questions/person_partner_spec.rb

15
app/models/form/lettings/questions/person_partner.rb

@ -7,11 +7,6 @@ class Form::Lettings::Questions::PersonPartner < ::Form::Question
@answer_options = answer_options
@person_index = person_index
@question_number = question_number
@hidden_in_check_answers = {
"depends_on" => (2...person_index).map do |i|
{ "relat#{i}" => "P", "relat#{person_index}" => "X" }
end,
}
@disable_clearing_if_not_routed_or_dynamic_answer_options = form.start_year_2026_or_later?
end
@ -37,4 +32,14 @@ class Form::Lettings::Questions::PersonPartner < ::Form::Question
def derived?(log)
form.start_year_2026_or_later? && log.is_partner_inferred?(@person_index)
end
def hidden_in_check_answers?(log, _current_user = nil)
if form.start_year_2026_or_later?
(2...@person_index).any? do |i|
log["relat#{i}"] == "P"
end
else
false
end
end
end

80
spec/models/form/lettings/questions/person_partner_spec.rb

@ -122,8 +122,44 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do
expect(question.check_answers_card_number).to eq(3)
end
it "has the correct hidden_in_check_answers" do
expect(question.hidden_in_check_answers).to eq("relat2" => "P", "relat3" => "X")
context "when the log has a preceding value of `relat` as 'P'" do
let(:log) { build(:lettings_log, relat2: "P") }
context "and in 2025", metadata: { year: 25 } do
let(:year) { 2025 }
it "has the correct hidden_in_check_answers?" do
expect(question.hidden_in_check_answers?(log)).to eq(false)
end
end
context "and in 2026", metadata: { year: 26 } do
let(:year) { 2026 }
it "has the correct hidden_in_check_answers?" do
expect(question.hidden_in_check_answers?(log)).to eq(true)
end
end
end
context "when the log does not have a preceding value of `relat` as 'P'" do
let(:log) { build(:lettings_log, relat2: "X") }
context "and in 2025", metadata: { year: 25 } do
let(:year) { 2025 }
it "has the correct hidden_in_check_answers?" do
expect(question.hidden_in_check_answers?(log)).to eq(false)
end
end
context "and in 2026", metadata: { year: 26 } do
let(:year) { 2026 }
it "has the correct hidden_in_check_answers?" do
expect(question.hidden_in_check_answers?(log)).to eq(false)
end
end
end
end
@ -138,8 +174,44 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do
expect(question.check_answers_card_number).to eq(4)
end
it "has the correct hidden_in_check_answers" do
expect(question.hidden_in_check_answers).to eq("depends_on" => [{"relat2"=>"P", "relat4"=>"X"}, {"relat3"=>"P", "relat4"=>"X"}])
context "when the log has a preceding value of `relat` as 'P'" do
let(:log) { build(:lettings_log, relat2: "P", relat3: "X") }
context "and in 2025", metadata: { year: 25 } do
let(:year) { 2025 }
it "has the correct hidden_in_check_answers?" do
expect(question.hidden_in_check_answers?(log)).to eq(false)
end
end
context "and in 2026", metadata: { year: 26 } do
let(:year) { 2026 }
it "has the correct hidden_in_check_answers?" do
expect(question.hidden_in_check_answers?(log)).to eq(true)
end
end
end
context "when the log does not have a preceding value of `relat` as 'P'" do
let(:log) { build(:lettings_log, relat2: "R", relat3: "X") }
context "and in 2025", metadata: { year: 25 } do
let(:year) { 2025 }
it "has the correct hidden_in_check_answers?" do
expect(question.hidden_in_check_answers?(log)).to eq(false)
end
end
context "and in 2026", metadata: { year: 26 } do
let(:year) { 2026 }
it "has the correct hidden_in_check_answers?" do
expect(question.hidden_in_check_answers?(log)).to eq(false)
end
end
end
end
end

Loading…
Cancel
Save