test: Update session test to reflect SessionTracker bug fix

This commit is contained in:
demenik
2025-12-10 20:00:07 +01:00
parent c4bbe2015f
commit 24cecb582a

View File

@@ -11,9 +11,13 @@ fn test_session_tracker_focus_to_short_break() {
}), }),
}); });
let timer_settings = TimerSettings::default(); 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!( assert_eq!(
session_tracker.completed_focus_phases, 1, session_tracker.completed_focus_phases, 1,
@@ -37,16 +41,17 @@ fn test_session_tracker_focus_to_long_break() {
}), }),
}); });
let timer_settings = TimerSettings::default(); let timer_settings = TimerSettings::default();
let mut session_tracker = SessionTracker { // Simulate that grant_focus_rewards has already incremented the counter to the interval
completed_focus_phases: timer_settings.long_break_interval - 1, let session_tracker = SessionTracker {
completed_focus_phases: timer_settings.long_break_interval,
total_berries_earned: 0, 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!( assert_eq!(
session_tracker.completed_focus_phases, timer_settings.long_break_interval, 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 { if let Phase::Break { duration } = current_phase.0 {
assert_eq!( assert_eq!(
@@ -65,13 +70,13 @@ fn test_session_tracker_break_to_focus() {
duration: 5.0 * 60.0, duration: 5.0 * 60.0,
}), }),
}); });
let mut session_tracker = SessionTracker { let session_tracker = SessionTracker {
completed_focus_phases: 1, completed_focus_phases: 1,
total_berries_earned: 0, total_berries_earned: 0,
}; // Arbitrary value, should not change }; // Arbitrary value, should not change
let timer_settings = TimerSettings::default(); 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!( assert_eq!(
session_tracker.completed_focus_phases, 1, 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() { fn test_session_tracker_not_finished_phase_no_change() {
// Test that nothing changes if the phase is not `Finished` // Test that nothing changes if the phase is not `Finished`
let mut current_phase = CurrentPhase(Phase::Focus { duration: 100.0 }); let mut current_phase = CurrentPhase(Phase::Focus { duration: 100.0 });
let mut session_tracker = SessionTracker { let session_tracker = SessionTracker {
completed_focus_phases: 0, completed_focus_phases: 0,
total_berries_earned: 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_phase = current_phase.0.clone();
let initial_completed_focus = session_tracker.completed_focus_phases; 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!( assert_eq!(
current_phase.0, initial_phase, 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" "Session tracker should not change if phase not Finished"
); );
} }