From 9b32cd6c0819d9f5b0ac934c882a20f909f797c9 Mon Sep 17 00:00:00 2001 From: gemshrine <113778529+gemshrine@users.noreply.github.com> Date: Fri, 2 Oct 2026 15:31:35 +0300 Subject: [PATCH 1/5] #950: use the earliest assessment timestamp value --- judges/latest-assessment/latest-assessment.rb | 4 ++-- test/pages/test_latest_assessment.rb | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/judges/latest-assessment/latest-assessment.rb b/judges/latest-assessment/latest-assessment.rb index 6a9e41f3..28135170 100644 --- a/judges/latest-assessment/latest-assessment.rb +++ b/judges/latest-assessment/latest-assessment.rb @@ -8,11 +8,11 @@ Fbe.fb.txn do |fb| assessments = fb.query('(and (eq what "assessment") (exists text) (exists when))').each.to_a next if assessments.empty? - latest = assessments.max_by(&:when) + latest = assessments.max_by { |assessment| assessment['when'].min } fb.query('(eq what "latest-assessment")').delete! f = fb.insert f.what = 'latest-assessment' f.text = latest.text - f.when = latest.when + f.when = latest['when'].min f.total = assessments.size end diff --git a/test/pages/test_latest_assessment.rb b/test/pages/test_latest_assessment.rb index 34b7023d..6943ab07 100644 --- a/test/pages/test_latest_assessment.rb +++ b/test/pages/test_latest_assessment.rb @@ -27,6 +27,24 @@ def test_replaces_previous_summary assert_equal(1, latest.first.total) end + def test_uses_earliest_value_when_comparing_multi_valued_dates + fb = Factbase.new + later_first = fb.insert + later_first.what = 'assessment' + later_first.text = 'Earlier effective date' + later_first['when'] = [Time.utc(2025, 1, 1), Time.utc(2024, 1, 1)] + actually_latest = fb.insert + actually_latest.what = 'assessment' + actually_latest.text = 'Latest effective date' + actually_latest.when = Time.utc(2024, 6, 1) + + load_it('latest-assessment', fb) + + latest = fb.query('(eq what "latest-assessment")').each.to_a.fetch(0) + assert_equal('Latest effective date', latest.text) + assert_equal(Time.utc(2024, 6, 1), latest.when) + end + def test_keeps_factbase_without_source_assessments fb = assessment_factbase fb.query('(eq what "assessment")').delete! From 0119f12850659ac3226352ab96477398b28ce203 Mon Sep 17 00:00:00 2001 From: gemshrine <113778529+gemshrine@users.noreply.github.com> Date: Fri, 2 Oct 2026 16:03:35 +0300 Subject: [PATCH 2/5] Fix multi-valued assessment date test --- test/pages/test_latest_assessment.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/pages/test_latest_assessment.rb b/test/pages/test_latest_assessment.rb index 6943ab07..61b31d42 100644 --- a/test/pages/test_latest_assessment.rb +++ b/test/pages/test_latest_assessment.rb @@ -32,7 +32,8 @@ def test_uses_earliest_value_when_comparing_multi_valued_dates later_first = fb.insert later_first.what = 'assessment' later_first.text = 'Earlier effective date' - later_first['when'] = [Time.utc(2025, 1, 1), Time.utc(2024, 1, 1)] + later_first.when = Time.utc(2025, 1, 1) + later_first.when = Time.utc(2024, 1, 1) actually_latest = fb.insert actually_latest.what = 'assessment' actually_latest.text = 'Latest effective date' From fd3d61dbf3774f5271c1d408e776f7a34e057a6f Mon Sep 17 00:00:00 2001 From: gemshrine <113778529+gemshrine@users.noreply.github.com> Date: Sat, 3 Oct 2026 12:34:05 +0300 Subject: [PATCH 3/5] #950: Preserve IDs on multi-date fixture facts --- test/pages/test_latest_assessment.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/pages/test_latest_assessment.rb b/test/pages/test_latest_assessment.rb index 61b31d42..007b242f 100644 --- a/test/pages/test_latest_assessment.rb +++ b/test/pages/test_latest_assessment.rb @@ -29,12 +29,15 @@ def test_replaces_previous_summary def test_uses_earliest_value_when_comparing_multi_valued_dates fb = Factbase.new + # Keep these imported source facts outside the judge's write set. later_first = fb.insert + later_first._id = 1 later_first.what = 'assessment' later_first.text = 'Earlier effective date' later_first.when = Time.utc(2025, 1, 1) later_first.when = Time.utc(2024, 1, 1) actually_latest = fb.insert + actually_latest._id = 2 actually_latest.what = 'assessment' actually_latest.text = 'Latest effective date' actually_latest.when = Time.utc(2024, 6, 1) From 436cacc808754059ba7e68963f966c9aebdd7127 Mon Sep 17 00:00:00 2001 From: gemshrine <113778529+gemshrine@users.noreply.github.com> Date: Sat, 3 Oct 2026 12:39:33 +0300 Subject: [PATCH 4/5] #950: satisfy lint rules for the regression case --- test/pages/test_latest_assessment.rb | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/test/pages/test_latest_assessment.rb b/test/pages/test_latest_assessment.rb index 007b242f..66c54850 100644 --- a/test/pages/test_latest_assessment.rb +++ b/test/pages/test_latest_assessment.rb @@ -29,18 +29,17 @@ def test_replaces_previous_summary def test_uses_earliest_value_when_comparing_multi_valued_dates fb = Factbase.new - # Keep these imported source facts outside the judge's write set. - later_first = fb.insert - later_first._id = 1 - later_first.what = 'assessment' - later_first.text = 'Earlier effective date' - later_first.when = Time.utc(2025, 1, 1) - later_first.when = Time.utc(2024, 1, 1) - actually_latest = fb.insert - actually_latest._id = 2 - actually_latest.what = 'assessment' - actually_latest.text = 'Latest effective date' - actually_latest.when = Time.utc(2024, 6, 1) + first = fb.insert + first._id = 1 + first.what = 'assessment' + first.text = 'Earlier effective date' + first.when = Time.utc(2025, 1, 1) + first.when = Time.utc(2024, 1, 1) + second = fb.insert + second._id = 2 + second.what = 'assessment' + second.text = 'Latest effective date' + second.when = Time.utc(2024, 6, 1) load_it('latest-assessment', fb) From a780574ee90b2d3c7f3bc05ba3dc20d4c86197fe Mon Sep 17 00:00:00 2001 From: gemshrine <113778529+gemshrine@users.noreply.github.com> Date: Sat, 3 Oct 2026 12:43:19 +0300 Subject: [PATCH 5/5] #950: remove method spacing lint offenses --- test/pages/test_latest_assessment.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/pages/test_latest_assessment.rb b/test/pages/test_latest_assessment.rb index 66c54850..6b798204 100644 --- a/test/pages/test_latest_assessment.rb +++ b/test/pages/test_latest_assessment.rb @@ -40,9 +40,7 @@ def test_uses_earliest_value_when_comparing_multi_valued_dates second.what = 'assessment' second.text = 'Latest effective date' second.when = Time.utc(2024, 6, 1) - load_it('latest-assessment', fb) - latest = fb.query('(eq what "latest-assessment")').each.to_a.fetch(0) assert_equal('Latest effective date', latest.text) assert_equal(Time.utc(2024, 6, 1), latest.when)