From 24cecb582a3966ffcbd819a1df9201c25ec8f3b8 Mon Sep 17 00:00:00 2001 From: demenik Date: Wed, 10 Dec 2025 20:00:07 +0100 Subject: [PATCH] test: Update session test to reflect `SessionTracker` bug fix --- tests/session.rs | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/tests/session.rs b/tests/session.rs index ce8c486..b17efec 100644 --- a/tests/session.rs +++ b/tests/session.rs @@ -11,9 +11,13 @@ fn test_session_tracker_focus_to_short_break() { }), }); let timer_settings = TimerSettings::default(); - let mut session_tracker = SessionTracker::default(); + // Simulate that grant_focus_rewards has already incremented the counter + let session_tracker = SessionTracker { + completed_focus_phases: 1, + total_berries_earned: 0, + }; - next_phase(&mut current_phase, &mut session_tracker, &timer_settings); + next_phase(&mut current_phase, &session_tracker, &timer_settings); assert_eq!( session_tracker.completed_focus_phases, 1, @@ -37,16 +41,17 @@ fn test_session_tracker_focus_to_long_break() { }), }); let timer_settings = TimerSettings::default(); - let mut session_tracker = SessionTracker { - completed_focus_phases: timer_settings.long_break_interval - 1, + // Simulate that grant_focus_rewards has already incremented the counter to the interval + let session_tracker = SessionTracker { + completed_focus_phases: timer_settings.long_break_interval, total_berries_earned: 0, - }; // To trigger long break on next phase + }; - next_phase(&mut current_phase, &mut session_tracker, &timer_settings); + next_phase(&mut current_phase, &session_tracker, &timer_settings); assert_eq!( session_tracker.completed_focus_phases, timer_settings.long_break_interval, - "Completed focus phases should reach long break interval" + "Completed focus phases should remain at long break interval" ); if let Phase::Break { duration } = current_phase.0 { assert_eq!( @@ -65,13 +70,13 @@ fn test_session_tracker_break_to_focus() { duration: 5.0 * 60.0, }), }); - let mut session_tracker = SessionTracker { + let session_tracker = SessionTracker { completed_focus_phases: 1, total_berries_earned: 0, }; // Arbitrary value, should not change let timer_settings = TimerSettings::default(); - next_phase(&mut current_phase, &mut session_tracker, &timer_settings); + next_phase(&mut current_phase, &session_tracker, &timer_settings); assert_eq!( session_tracker.completed_focus_phases, 1, @@ -91,7 +96,7 @@ fn test_session_tracker_break_to_focus() { fn test_session_tracker_not_finished_phase_no_change() { // Test that nothing changes if the phase is not `Finished` let mut current_phase = CurrentPhase(Phase::Focus { duration: 100.0 }); - let mut session_tracker = SessionTracker { + let session_tracker = SessionTracker { completed_focus_phases: 0, total_berries_earned: 0, }; @@ -100,7 +105,7 @@ fn test_session_tracker_not_finished_phase_no_change() { let initial_phase = current_phase.0.clone(); let initial_completed_focus = session_tracker.completed_focus_phases; - next_phase(&mut current_phase, &mut session_tracker, &timer_settings); + next_phase(&mut current_phase, &session_tracker, &timer_settings); assert_eq!( current_phase.0, initial_phase, @@ -111,3 +116,4 @@ fn test_session_tracker_not_finished_phase_no_change() { "Session tracker should not change if phase not Finished" ); } +