# Issue #180 – SPA gameplay flow evidence ## Flow log (host + player, no page reload) 1. Host opens SPA host shell and loads scoreboard (`GET /lobby/sessions/{code}/scoreboard`). 2. Host starts next round (`POST /lobby/sessions/{code}/rounds/next`). 3. Host shell refreshes session state in-place (`GET /lobby/sessions/{code}`) and clears old scoreboard/final leaderboard payloads. 4. Player shell performs periodic session refresh while online (3s cadence) and transitions from `scoreboard` to `lobby` without page reload. 5. Host finishes game (`POST /lobby/sessions/{code}/finish`) and renders final leaderboard directly in SPA shell. 6. Player shell reads `finished` state and renders final leaderboard in SPA (sorted by score). 7. Error/retry paths available: - Host: next-round and finish-game retry buttons with explicit error feedback. - Player: reconnect + submit retry feedback. ## Test output snapshot Command: ```bash cd frontend/angular npm test -- --run src/app/features/host/host-shell.component.spec.ts src/app/features/player/player-shell.component.spec.ts ``` Result: - `host-shell.component.spec.ts`: 6 passed - `player-shell.component.spec.ts`: 7 passed - Total: 13 passed, 0 failed