Skip to content

test(runner): close the DEV-2530 guide/tests parity gaps - #263

Open
danielzytohoc wants to merge 1 commit into
masterfrom
test/DEV-2530-parity-followups
Open

test(runner): close the DEV-2530 guide/tests parity gaps#263
danielzytohoc wants to merge 1 commit into
masterfrom
test/DEV-2530-parity-followups

Conversation

@danielzytohoc

@danielzytohoc danielzytohoc commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Closes every remaining item on DEV-2530 — the coverage gaps left from the DEV-2203 guide/tests parity audit. All deterministic: everything here runs in PR CI, no live tier, no fixture demo, no product-code changes.

Item Where What's pinned
1 · revoked card UI authed-actions.spec.ts badge stays, kebab disappears entirely (stronger than the ticket's "loses actions" — MyDemos renders no kebab at all), live card as the control
2 · share dialog links authed-actions.spec.ts the three labelled fields by exact accessible name, and Copy link proven equal to the dialog's client link via the real clipboard
3 · versionLocked all-demos.spec.ts /share/:id renders text, not a menu — no trigger/pencil/input, click opens nothing; playground as the interactive contrast; pinned value steered off the DEFAULT_VERSION fallback
4 · zip parity editor-download.spec.ts FILES-header and top-bar downloads compared per-entry (names + decompressed bytes; whole-zip bytes legitimately differ by mtime), marker in both
5 · docs picker search docs-picker.spec.ts (new) cross-category, cross-section reach; click and keyboard selection land ?docs=; garbage query → empty state
6 · container boot UX container-boot-ux.spec.ts (new) "Starting the live dev server…", Details log tail verbatim, and both resolutions (error card cause-first / iframe pointed) — the Tier-2 lifecycle stubbed as three HTTP shapes, no container
7 · /admin smoke admin-panel.spec.ts (new) login wall (no render, no admin fetch, redirect polled), one row per session, awake/slept labels, usd() branches, billable-basis tooltip, pager offset arithmetic
8 · bare-ref boundary ht-version-resolve.test.mjs 999 refused with the validator's exact message / 1000 accepted → tarball URL; same threshold in package.json derivation

Verification. Every test is mutation-checked — 18 targeted product regressions each redden exactly the tests that claim to guard them (matrix in the workflow log; e.g. dropping the revoked-kebab guard, rewording Public client link:, versionLocked={false}, diverging the two zippers, narrowing searchLeaves to titles, reordering tailLines, dropping the login wall, moving the 1000 threshold both ways). Full deterministic run: 48 passed / 0 failed; pipeline suite 893/0; three independent adversarial reviews (hollow, cannot-fail, drift) all CLEAN, and their nice-to-have notes are already applied (the polled redirect counter, two comment corrections, the dist-staleness note).

One out-of-scope find from review, not in this diff: EditorShell.tsx:489 contains a literal NUL byte (since DEV-2583) that makes grep/file treat the source as binary — worth a one-character follow-up.


Note

Low Risk
Test-only changes with stubbed HTTP; no production logic, auth, or data paths modified.

Overview
Adds deterministic Playwright and pipeline tests to cover the remaining DEV-2530 guide parity items—no application code changes.

New E2E specs stub APIs and assert user-visible behavior: admin-panel.spec.ts (login gate, live sessions table, cost formatting, pager offsets); container-boot-ux.spec.ts (Tier-2 boot caption, Details log, success/error resolution); docs-picker.spec.ts (cross-catalog search, selection, keyboard, empty state).

Extended specs pin share-route version lock (all-demos.spec.ts), revoked My demos cards and share dialog link parity including real clipboard (authed-actions.spec.ts), and FILES-header vs top-bar zip identity (editor-download.spec.ts).

ht-version-resolve.test.mjs adds tests for the bare numeric 999 vs 1000 major vs pkg.pr.new boundary and notes that the suite imports runtime dist (build before direct runs).

Reviewed by Cursor Bugbot for commit 2835611. Bugbot is set up for automated code reviews on this repo. Configure here.

The seven remaining items from the DEV-2203 parity audit, all
deterministic — every test runs in PR CI with no deployed API, no
bundler, no fixture demo:

- revoked card UI: badge stays, kebab disappears entirely, live card
  as the control for both (authed-actions)
- share dialog: the three labelled link fields pinned by exact
  accessible names, and My-demos Copy link proven byte-equal to the
  dialog's client link via the real clipboard (authed-actions)
- versionLocked on /share/:id: no trigger, no pencil, no input, and a
  click that opens nothing — with the playground as the interactive
  contrast, and the pinned value steered off the DEFAULT_VERSION
  fallback so it cannot pass by accident (all-demos)
- FILES-header download hands over the same zip as the top bar:
  per-entry byte comparison, marker present in both so two stale zips
  cannot satisfy it (editor-download)
- docs picker search: cross-category and cross-section reach (the
  searchLeaves flattening), click and keyboard selection both land the
  ?docs= URL, garbage query shows the empty state (docs-picker, new)
- container boot UX: 'Starting the live dev server…', the Details log
  tail verbatim, and both resolutions — failure to the error card with
  the cause line first, success to the pointed iframe (container-boot-ux,
  new; the session lifecycle stubbed as three HTTP shapes)
- /admin smoke: login wall for the signed-out (redirect polled — the
  navigation is an effect), one row per session with honest awake/slept
  labels, the usd() formatting branches, the billable-basis tooltip,
  and a pager that asks for the right next offset (admin-panel, new)
- the MIN_BARE_NUMERIC_PKG_PR_NEW_REF boundary: 999 refused with the
  validator's exact message, 1000 accepted and pinned to the tarball
  URL, and the same threshold governing package.json derivation
  (ht-version-resolve)

Every test mutation-checked: 18 targeted product regressions (guard
dropped, label reworded, lock removed, zippers diverged, haystack
narrowed, tail reordered, wall dropped, rounding broken, threshold
moved both ways) each redden exactly the tests that claim to guard
them; sources restored, tree verified. Full deterministic run: 48
passed; pipeline suite 893/0.
@danielzytohoc
danielzytohoc requested a review from demtario August 26, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants