Browse Source

Fixed derived?

CLDC-4146-infer-no-other-partners
oscar-richardson-softwire 1 week ago
parent
commit
3647f541dc
  1. 4
      app/models/form/lettings/questions/person_partner.rb
  2. 10
      app/models/lettings_log.rb
  3. 32
      spec/models/form/lettings/questions/person_partner_spec.rb

4
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

10
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

32
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

Loading…
Cancel
Save