From 0717d9051181811c7d58dd453abf076b87cb0444 Mon Sep 17 00:00:00 2001 From: b0ink <40929320+b0ink@users.noreply.github.com> Date: Fri, 5 Jun 2026 12:03:52 +1000 Subject: [PATCH] fix: ensure start and target dates set correctly if unit start date is a monday --- app/models/teaching_period.rb | 5 ++++- test/models/teaching_period_test.rb | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/models/teaching_period.rb b/app/models/teaching_period.rb index eaf5d6b2c9..e8c0195ac0 100644 --- a/app/models/teaching_period.rb +++ b/app/models/teaching_period.rb @@ -115,7 +115,10 @@ def date_for_week_and_day(week, day) start_day_num = start_date.wday - result = week_start + (day_num - start_day_num).days + day_offset = day_num - start_day_num + day_offset += 7 if day_offset.negative? + + result = week_start + day_offset.days for a_break in breaks do if result >= a_break.start_date && result < a_break.end_date diff --git a/test/models/teaching_period_test.rb b/test/models/teaching_period_test.rb index 863507e2e6..e630bb35f9 100644 --- a/test/models/teaching_period_test.rb +++ b/test/models/teaching_period_test.rb @@ -119,7 +119,7 @@ def test_create_teaching_period_with_invalid_dates assert_equal tp.start_date + 3.day + 2.week, tp.date_for_week_and_day(3, 'Thu') assert_equal tp.start_date + 4.day + 2.week, tp.date_for_week_and_day(3, 'Fri') assert_equal tp.start_date + 5.day, tp.date_for_week_and_day(1, 'Sat') - assert_equal tp.start_date - 1.day, tp.date_for_week_and_day(1, 'Sun') + assert_equal tp.start_date + 6.days, tp.date_for_week_and_day(1, 'Sun') end test 'can map week and day to date after break' do