Uh oh!
There was an error while loading. Please reload this page.
test(storybook): shrink the smoke matrix to its declared checks - #2481
Conversation
Part of apache#2390 (Storybook half; Electron E2E follows separately per the issue). The smoke runner asserts per job: mount + console/pageerror cleanliness + scheme application, plus any declared checks[]. Nine surfaces declare no checks, so their compact and floor viewports re-ran exactly the baseline assertions that wide already proves — repetition without a distinct failure signal. Three checked surfaces ran compact and floor through the same check branch (module-page-inspector branches at 1024px; both are below it), so compact duplicated floor with a looser width. Every removal goes through the manifest's own declared mechanism: the validator requires each of the three product viewports to be covered or explained, so each dropped viewport carries a written opt-out reason, in the same style the manifest already uses. Nothing is silently skipped, REQUIRED_PRODUCT_SURFACES is untouched, and the full-catalog mount sweep (every story renders once) is unchanged. - 9 no-checks surfaces + askUserQuestion: wide only - planReminders / planRemindersInspector / sessionContext: wide + floor, compact opted out (same check branch as floor at a looser width) Timing (local, node scripts/storybook-visual-smoke.mjs after build-storybook): 92 manifest jobs -> 48; wall 43.0s -> 28.6s (-33%). Catalog renders: 100 before and after. Smoke passes on the reduced matrix.
Astro-Han
commented
Aug 8, 2026
Thanks — this is a good reduction. The manifest should pay for additional viewport jobs only when those jobs prove a distinct contract. I do not think the removed floor jobs need to be restored. The affected entries had no geometry checks, so another narrow mount would still pass if overflow, column layout, or containment regressed. Their story states continue to receive the catalog mount sweep. If a narrow layout becomes an important contract, the useful follow-up is a focused geometry assertion rather than restoring a mount-only viewport duplicate. Two small P3 documentation cleanups:
Neither needs to block the test reduction. The implementation and CI look good to merge. Thanks! |
Uh oh!
There was an error while loading. Please reload this page.
Part of #2390 (Storybook half; the Electron E2E changes follow in a separate PR per the issue).
Problem
The product smoke manifest expanded 22 surfaces into 92 serial page loads, but the assertions do not justify the matrix:
.darkclass + computed color-scheme. Only a surface's declaredchecks[]add anything beyond that.module-page-inspectorbranches at 1024px (both compact 820 and floor 480 take the dialog branch),plan-reminder-row's right-alignment check gates on ≥1100px (both skip it), andsession-context-layeris one width-agnostic predicate whose distinct narrow behavior (overflow-menu fallback) floor already exercises at the stricter width.Change
One file:
apps/desktop/stories/product-smoke-manifest.json. Every removal goes through the runner's own declared mechanism — the validator fails unless each of the three product viewports is either covered or given a written opt-out reason — so nothing is silently skipped:Untouched:
REQUIRED_PRODUCT_SURFACES(all 22 surfaces still present), allchecks[], the runner itself, and the full catalog mount sweep — every story in the built index still renders once (100 renders before and after), so 'renders without throwing' coverage is not reduced for any story.Timing
Local,
smoke:storybookafterbuild-storybook, same machine:The manifest half runs at concurrency 1 (its geometry checks need a quiet page), so it dominates smoke wall time — and is exactly the half this shrinks.
Judgment call for review
The three checked-surface compact opt-outs (planReminders, planRemindersInspector, sessionContext) are the interpretive part: the check code takes the same branch as floor, but the DOM under it differs at 820px. If you weigh 820px as an independent geometry worth mounting, say so and I'll restore those three (matrix 48 → 54; the nine no-checks surfaces are the unambiguous bulk of the win).
cc @Astro-Han