From 87bc6228e724838723ff31acb357406f879bbd79 Mon Sep 17 00:00:00 2001 From: mkelvers Date: Sat, 27 Jun 2026 16:18:36 +0200 Subject: [PATCH] docs: remove resolved plan --- plans/007-characterize-browser-player-flow.md | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 plans/007-characterize-browser-player-flow.md diff --git a/plans/007-characterize-browser-player-flow.md b/plans/007-characterize-browser-player-flow.md deleted file mode 100644 index 423ed32a..00000000 --- a/plans/007-characterize-browser-player-flow.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -finding: "Characterize the browser player flow" -catalog: "Tests" -impact: "Critical watch behavior can regress while parser tests and typecheck still pass." -base_commit: "0d31d46" ---- - -## Effort - -M - add a focused DOM/browser test harness and cover the highest-risk interactions. - -## Risk - -LOW - tests should characterize existing behavior, not change product behavior. - -## Confidence - -HIGH - existing TypeScript tests cover helpers, while the player orchestration is largely untested. - -## Evidence - -- `static/player/main.ts:141-149` wires progress, controls, keyboard, skip, subtitles, quality, and mode behavior in one browser-only flow. -- `static/player/progress.ts:65-76` persists progress through `fetch` and updates save state. -- `static/player/episodes/complete.ts:10-28` posts completion, retries failures, and mutates UI state. -- Existing TS tests are limited to `static/player/validate.test.ts` and `static/player/subtitles/vtt.test.ts`. - -## Resolution Approach - -Add targeted browser-player characterization tests without recreating broad flaky E2E coverage. Prefer small DOM tests under `static/player` that construct minimal player markup, stub `fetch`, `navigator.sendBeacon`, media element properties, timers, and `window.showToast`, then exercise the exported setup or lower-level modules. - -Start with the highest-risk flows: initial source URL construction from mode token and quality preference, progress save on pause/scrub, completion retry behavior, and graceful handling when no playable source exists. If current modules are hard to test, introduce minimal testability seams while preserving runtime behavior. - -Avoid reintroducing full Playwright infrastructure unless a lightweight DOM approach is insufficient. Keep fixtures short and readable so failures explain a specific player behavior. - -Verify with `bun test`, `bunx tsc -p tsconfig.json --noEmit`, and `bun run lint:ts`.