From 3647f541dc4053997d79410d5bd3b0a1f74d0445 Mon Sep 17 00:00:00 2001 From: oscar-richardson-softwire Date: Mon, 9 Feb 2026 16:11:32 +0000 Subject: [PATCH] Fixed derived? --- .../form/lettings/questions/person_partner.rb | 4 +-- app/models/lettings_log.rb | 10 ++++++ .../lettings/questions/person_partner_spec.rb | 32 +++++++++++++++++++ 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/app/models/form/lettings/questions/person_partner.rb b/app/models/form/lettings/questions/person_partner.rb index bfebb3723..cb6071614 100644 --- a/app/models/form/lettings/questions/person_partner.rb +++ b/app/models/form/lettings/questions/person_partner.rb @@ -35,9 +35,7 @@ class Form::Lettings::Questions::PersonPartner < ::Form::Question 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 + log.is_an_earlier_person_partner(@person_index) else false end diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index cdd52799b..e7e37b7b6 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -403,9 +403,19 @@ class LettingsLog < Log end def is_partner_inferred?(person_index) + is_person_under_16(person_index) || is_an_earlier_person_partner(person_index) + end + + def is_person_under_16(person_index) public_send("age#{person_index}") && public_send("age#{person_index}") < 16 end + def is_an_earlier_person_partner(person_index) + (2...person_index).any? do |i| + public_send("relat#{i}") == "P" + end + end + def age_changed_from_below_16(person_index) public_send("age#{person_index}_was") && public_send("age#{person_index}_was") < 16 end diff --git a/spec/models/form/lettings/questions/person_partner_spec.rb b/spec/models/form/lettings/questions/person_partner_spec.rb index 583ae2610..435794046 100644 --- a/spec/models/form/lettings/questions/person_partner_spec.rb +++ b/spec/models/form/lettings/questions/person_partner_spec.rb @@ -131,6 +131,10 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do it "has the correct hidden_in_check_answers?" do expect(question.hidden_in_check_answers?(log)).to eq(false) end + + it "is not marked as derived" do + expect(question.derived?(log)).to be false + end end context "and in 2026", metadata: { year: 26 } do @@ -139,6 +143,10 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do it "has the correct hidden_in_check_answers?" do expect(question.hidden_in_check_answers?(log)).to eq(true) end + + it "is marked as derived" do + expect(question.derived?(log)).to be true + end end end @@ -151,6 +159,10 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do it "has the correct hidden_in_check_answers?" do expect(question.hidden_in_check_answers?(log)).to eq(false) end + + it "is not marked as derived" do + expect(question.derived?(log)).to be false + end end context "and in 2026", metadata: { year: 26 } do @@ -159,6 +171,10 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do it "has the correct hidden_in_check_answers?" do expect(question.hidden_in_check_answers?(log)).to eq(false) end + + it "is not marked as derived" do + expect(question.derived?(log)).to be false + end end end end @@ -183,6 +199,10 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do it "has the correct hidden_in_check_answers?" do expect(question.hidden_in_check_answers?(log)).to eq(false) end + + it "is not marked as derived" do + expect(question.derived?(log)).to be false + end end context "and in 2026", metadata: { year: 26 } do @@ -191,6 +211,10 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do it "has the correct hidden_in_check_answers?" do expect(question.hidden_in_check_answers?(log)).to eq(true) end + + it "is marked as derived" do + expect(question.derived?(log)).to be true + end end end @@ -203,6 +227,10 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do it "has the correct hidden_in_check_answers?" do expect(question.hidden_in_check_answers?(log)).to eq(false) end + + it "is not marked as derived" do + expect(question.derived?(log)).to be false + end end context "and in 2026", metadata: { year: 26 } do @@ -211,6 +239,10 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do it "has the correct hidden_in_check_answers?" do expect(question.hidden_in_check_answers?(log)).to eq(false) end + + it "is not marked as derived" do + expect(question.derived?(log)).to be false + end end end end