From 017bbfff26a03b085b0c18bcbcb1eda0c950baa3 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 fa0d6198b..401f65bd4 100644 --- a/app/models/form/lettings/questions/person_partner.rb +++ b/app/models/form/lettings/questions/person_partner.rb @@ -41,9 +41,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 8a3a3c903..f690649b5 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -408,9 +408,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 1be0d8c11..e8af7545e 100644 --- a/spec/models/form/lettings/questions/person_partner_spec.rb +++ b/spec/models/form/lettings/questions/person_partner_spec.rb @@ -133,6 +133,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 @@ -141,6 +145,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 @@ -153,6 +161,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 @@ -161,6 +173,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 @@ -185,6 +201,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 @@ -193,6 +213,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 @@ -205,6 +229,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 @@ -213,6 +241,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