8bd2fb89eb
solitaire_wasm/src/lib.rs — 5 new unit tests (9 total, was 4): - serialize_from_saved_round_trip: board key matches after JSON round-trip - undo_reverts_to_prior_state: state + history length restored after undo - draw_one_advances_waste_by_one: DrawOne takes exactly 1 card from stock - draw_three_advances_waste_by_three: DrawThree takes up to 3 cards - debug_apply_move_json_stock_click: JSON DebugMove path via native method solitaire_server/e2e/tests/game_behaviors.spec.js — 5 new Playwright tests: - resume overlay shows when localStorage save exists; seed() returns null until user interacts (before bootstrap completes a game) - clicking New Game on overlay clears history and starts fresh (0 moves) - clicking Resume restores saved move history length exactly - HUD new-game button resets history to 0 and score to 0 - tab-visibility timer: timer freezes during hidden, resumes when visible (tests the visibilitychange fix from the 500-game UX audit); uses page.clock.install() to control setInterval without real-time delay Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>