diff --git a/judges/latest-assessment/latest-assessment.rb b/judges/latest-assessment/latest-assessment.rb index b4cbe510..7fef631a 100644 --- a/judges/latest-assessment/latest-assessment.rb +++ b/judges/latest-assessment/latest-assessment.rb @@ -9,10 +9,10 @@ assessments = fb.query('(and (eq what "assessment") (exists text) (exists when))').each.to_a fb.query('(eq what "latest-assessment")').delete! next if assessments.empty? - latest = assessments.max_by(&:when) + latest = assessments.max_by { |assessment| assessment['when'].min } 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 4da57c34..c41bdf5a 100644 --- a/test/pages/test_latest_assessment.rb +++ b/test/pages/test_latest_assessment.rb @@ -27,6 +27,25 @@ 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 + 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) + 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 + private def assessment_factbase