test(e2e): name the fixture tracks that really have no album #226

Merged
logan merged 1 commits from test/217-fixture-names-in-queue-selection into main 2026-08-26 16:02:54 +00:00
Collaborator

What the issue was

#217. e2e/specs/queue-selection.spec.ts filters the tracks it queues
with t.Album !== '' and carries a comment explaining why: a track with
no album renders a name explore-link cannot route, and one of the
tests clicks that name. The comment named the two tracks it had in mind
as 01 Tone A and 02 Tone B — which stopped being true at #104,
when the scan learned to read a WAV's id3 chunk.

What changed

The two names, and one clause saying which change made the old ones
wrong so the next reader does not restore them. Nothing else: the
filter, its reason, and all five assertions are untouched.

The replacement names were asked of a seeded app rather than read
off the fixture generator — /__test/sql over audio_files joined to
albums, against make dev-headless SEED=default on main:

 19  album='Test Tones'  title='Tone B'      Field Recordings/Test Tones/02 Tone B.wav
 20  album='Test Tones'  title='Tone A'      Field Recordings/Test Tones/01 Tone A.wav
 28  album='-'           title='no-tags-at-all'  unsorted/no-tags-at-all.mp3
 29  album='-'           title='Title Only'      unsorted/title-only.mp3

Exactly two of 31 tracks have no album, and they are not the WAVs.

Verification

  • make e2e244 passed against make dev-headless SEED=default
    with YJ_CORE_INDEX_URL at a dead address (the configuration
    ci.yml runs). Port 34115 was free; no other worktree was running
    the app.
  • The five queue-selection specs additionally run on their own —
    5 passed.
  • npx tsc --noEmit clean in e2e/. make skill-check and
    make css-check clean.
  • No Go, no .sql, no .templ, no bound signature, nothing under
    frontend/src: make lint, make test, make generate,
    make bindings, make ui-test and make ui-visual were not run,
    and nothing renders differently, so no screenshot tier applies.

Deliberately not done

The same staleness elsewhere is #225, not a bigger diff here.
.pi/skills/yellowjacket-dev/references/fixtures.md still tells an
agent the WAVs scan in untitled and names TestWAVTagsAreNotReadableYet,
a test #104 deleted; .planning/NOTES.md carries it twice more, in
dated entries where correcting history is a judgement about what that
file is for.

#168 was this run's intended pick and is refuted rather than fixed.
It reports that a job staged with /__test/emit outlives the spec file
that staged it. Measured under its own conditions — a probe making
exactly the draft assertion it describes, run alone, run after both job
specs, and run last inside a full make e2econtentTop is 0 in all
three, which is the value the issue says fails in a suite run, and
jobs.Service.GetJobs on a fresh page shows no staged job at all. It
is structural: /__test/emit is events.Deliver and touches no
registry, Playwright gives each test a fresh context, and job-store
rebuilds from GetJobs() on load. The measurements are on the issue;
whether it becomes a docs-only issue for the rule it also states or is
closed Reviewed/Invalid is left to a human.

Closes #217

## What the issue was #217. `e2e/specs/queue-selection.spec.ts` filters the tracks it queues with `t.Album !== ''` and carries a comment explaining why: a track with no album renders a name `explore-link` cannot route, and one of the tests clicks that name. The comment named the two tracks it had in mind as `01 Tone A` and `02 Tone B` — which stopped being true at #104, when the scan learned to read a WAV's `id3 ` chunk. ## What changed The two names, and one clause saying which change made the old ones wrong so the next reader does not restore them. Nothing else: the filter, its reason, and all five assertions are untouched. The replacement names were **asked of a seeded app** rather than read off the fixture generator — `/__test/sql` over `audio_files` joined to `albums`, against `make dev-headless SEED=default` on `main`: ``` 19 album='Test Tones' title='Tone B' Field Recordings/Test Tones/02 Tone B.wav 20 album='Test Tones' title='Tone A' Field Recordings/Test Tones/01 Tone A.wav 28 album='-' title='no-tags-at-all' unsorted/no-tags-at-all.mp3 29 album='-' title='Title Only' unsorted/title-only.mp3 ``` Exactly two of 31 tracks have no album, and they are not the WAVs. ## Verification - `make e2e` — **244 passed** against `make dev-headless SEED=default` with `YJ_CORE_INDEX_URL` at a dead address (the configuration `ci.yml` runs). Port 34115 was free; no other worktree was running the app. - The five `queue-selection` specs additionally run on their own — 5 passed. - `npx tsc --noEmit` clean in `e2e/`. `make skill-check` and `make css-check` clean. - No Go, no `.sql`, no `.templ`, no bound signature, nothing under `frontend/src`: `make lint`, `make test`, `make generate`, `make bindings`, `make ui-test` and `make ui-visual` were not run, and nothing renders differently, so no screenshot tier applies. ## Deliberately not done **The same staleness elsewhere is #225, not a bigger diff here.** `.pi/skills/yellowjacket-dev/references/fixtures.md` still tells an agent the WAVs scan in untitled and names `TestWAVTagsAreNotReadableYet`, a test #104 deleted; `.planning/NOTES.md` carries it twice more, in dated entries where correcting history is a judgement about what that file is for. **#168 was this run's intended pick and is refuted rather than fixed.** It reports that a job staged with `/__test/emit` outlives the spec file that staged it. Measured under its own conditions — a probe making exactly the draft assertion it describes, run alone, run after both job specs, and run last inside a full `make e2e` — `contentTop` is 0 in all three, which is the value the issue says fails in a suite run, and `jobs.Service.GetJobs` on a fresh page shows no staged job at all. It is structural: `/__test/emit` is `events.Deliver` and touches no registry, Playwright gives each test a fresh context, and `job-store` rebuilds from `GetJobs()` on load. The measurements are on the issue; whether it becomes a docs-only issue for the rule it also states or is closed `Reviewed/Invalid` is left to a human. Closes #217
logan added 1 commit 2026-08-26 11:42:37 +00:00
test(e2e): name the fixture tracks that really have no album
CI / check (push) Skipped
CI / e2e (push) Skipped
CI / check (pull_request) Successful in 3m47s
CI / e2e (pull_request) Successful in 10m17s
ec4961ae50
`queueSixAndOpen` filters the queue down to tracks that have an album,
because `explore-link` renders a name it cannot route as plain text and
one test clicks that name. The filter is right and unchanged; the
comment explaining it named the wrong two files.

Since #104 read a WAV's `id3 ` chunk, the two tracks under `Field
Recordings/Test Tones` are tagged, scanned and ordinary. Asked of a
seeded app rather than of the comment, exactly two tracks in the
fixture library have no album: `unsorted/no-tags-at-all.mp3` and
`unsorted/title-only.mp3`.

The clause saying which change made the old names wrong is there so the
next reader does not restore them.

Closes #217
Author
Collaborator

CI green on run 18014 — both jobs, and the WebKit step ran rather than being skipped, which is worth saying since a chromium failure silently takes it with it.

check  success   commit-check, lint, test (3 configs), tsc, ui-test, bindings-check, skill-check
e2e    success   E2E — chromium ✓   E2E — webkit ✓
CI green on run 18014 — both jobs, and the WebKit step ran rather than being skipped, which is worth saying since a chromium failure silently takes it with it. ``` check success commit-check, lint, test (3 configs), tsc, ui-test, bindings-check, skill-check e2e success E2E — chromium ✓ E2E — webkit ✓ ```
logan merged commit f79249dfba into main 2026-08-26 16:02:54 +00:00
Sign in to join this conversation.