From 34f60e048a0f1df9d3c06032d67d9e7a031955bd Mon Sep 17 00:00:00 2001 From: funman300 Date: Mon, 27 Apr 2026 05:13:02 +0000 Subject: [PATCH] test(sync): add unit tests for StatsSnapshot::record_abandoned Co-Authored-By: Claude Sonnet 4.6 --- solitaire_sync/src/stats.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/solitaire_sync/src/stats.rs b/solitaire_sync/src/stats.rs index 9f0285e..7585c46 100644 --- a/solitaire_sync/src/stats.rs +++ b/solitaire_sync/src/stats.rs @@ -123,4 +123,31 @@ mod tests { let s = StatsSnapshot::default(); assert_eq!(s.fastest_win_seconds, u64::MAX); } + + #[test] + fn record_abandoned_increments_played_and_lost() { + let mut s = StatsSnapshot::default(); + s.record_abandoned(); + assert_eq!(s.games_played, 1); + assert_eq!(s.games_lost, 1); + assert_eq!(s.games_won, 0); + } + + #[test] + fn record_abandoned_resets_win_streak() { + let mut s = StatsSnapshot::default(); + s.win_streak_current = 5; + s.record_abandoned(); + assert_eq!(s.win_streak_current, 0, "abandoned game must break the win streak"); + } + + #[test] + fn record_abandoned_preserves_best_streak() { + let mut s = StatsSnapshot::default(); + s.win_streak_best = 7; + s.win_streak_current = 7; + s.record_abandoned(); + assert_eq!(s.win_streak_best, 7, "best streak must not be reduced on abandon"); + assert_eq!(s.win_streak_current, 0); + } }