Files
golfgame/tests/soak
adlee-was-taken d3b468575b feat(soak): per-room watchdog + heartbeat wiring + multi-game lobby fix
Watchdog class with 4 Vitest tests (27 total now), wired into
ctx.heartbeat in the runner. One watchdog per room with a 60s
timeout; firing logs an error, marks the room's dashboard tile
as errored, and triggers the abort signal so the scenario unwinds.
Watchdogs are explicitly stopped in the runner's finally block
so pending timers don't keep the node process alive on exit.

Also fixes a multi-game bug discovered during stress scenario
verification: after a game ends sessions stay parked on the
game_over screen, which hides the lobby and makes a subsequent
#create-room-btn click time out. runOneMultiplayerGame now
navigates every session to / before each game — localStorage
auth persists so nothing re-logs in.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 21:52:49 -04:00
..

Golf Soak & UX Test Harness

Runs 16 authenticated browser sessions across 4 rooms to populate staging scoreboards and stress-test multiplayer stability.

Spec: docs/superpowers/specs/2026-04-10-multiplayer-soak-test-design.md Bring-up: docs/soak-harness-bringup.md

Quick start

cd tests/soak
bun install
bun run seed                                  # first run only
TEST_URL=http://localhost:8000 bun run smoke

(The scripts also work with npm run, pnpm run, etc. — bun is what's installed on this dev machine.)

Full documentation arrives with Task 31.