tuffgal 0.2.0-alpha.3 → 0.2.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -20
- package/README.md +6 -6
- package/dist/cli.d.ts +5 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +6 -6
- package/dist/commands/supervise.d.ts +3 -3
- package/dist/commands/supervise.js +8 -4
- package/dist/commands/supervise.js.map +1 -1
- package/dist/config.d.ts +29 -13
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -2
- package/dist/config.js.map +1 -1
- package/dist/coverage/screens.d.ts +10 -5
- package/dist/coverage/screens.d.ts.map +1 -1
- package/dist/coverage/screens.js +18 -8
- package/dist/coverage/screens.js.map +1 -1
- package/dist/reporter/assets/report.css +11 -11
- package/dist/reporter/assets/report.js +23 -23
- package/dist/reporter/template.js +48 -46
- package/dist/reporter/template.js.map +1 -1
- package/dist/runner/approve.d.ts +5 -5
- package/dist/runner/approve.js +5 -5
- package/dist/runner/approveFrom.d.ts +8 -8
- package/dist/runner/approveFrom.js +32 -31
- package/dist/runner/approveFrom.js.map +1 -1
- package/dist/runner/breakpointPasses.d.ts +16 -9
- package/dist/runner/breakpointPasses.d.ts.map +1 -1
- package/dist/runner/breakpointPasses.js +17 -9
- package/dist/runner/breakpointPasses.js.map +1 -1
- package/dist/runner/bridges/devServers.d.ts +10 -1
- package/dist/runner/bridges/devServers.d.ts.map +1 -1
- package/dist/runner/bridges/devServers.js +16 -8
- package/dist/runner/bridges/devServers.js.map +1 -1
- package/dist/runner/coverage.d.ts +3 -3
- package/dist/runner/coverage.js +5 -5
- package/dist/runner/coverage.js.map +1 -1
- package/dist/runner/exitCode.d.ts +7 -7
- package/dist/runner/exitCode.js +7 -7
- package/dist/runner/interpolate.js +1 -1
- package/dist/runner/interpolate.js.map +1 -1
- package/dist/runner/manifest.d.ts +16 -16
- package/dist/runner/manifest.js +12 -12
- package/dist/runner/mode.d.ts +2 -2
- package/dist/runner/mode.js +4 -4
- package/dist/runner/orphanScan.d.ts +3 -3
- package/dist/runner/orphanScan.js +5 -5
- package/dist/runner/orphanScan.js.map +1 -1
- package/dist/runner/resolveLocator.d.ts +5 -5
- package/dist/runner/resolveLocator.js +6 -6
- package/dist/runner/resolveLocator.js.map +1 -1
- package/dist/runner/run.d.ts +55 -18
- package/dist/runner/run.d.ts.map +1 -1
- package/dist/runner/run.js +118 -67
- package/dist/runner/run.js.map +1 -1
- package/dist/runner/runAction.d.ts +4 -4
- package/dist/runner/runAction.d.ts.map +1 -1
- package/dist/runner/runAction.js +103 -39
- package/dist/runner/runAction.js.map +1 -1
- package/dist/runner/runStory.d.ts +29 -18
- package/dist/runner/runStory.d.ts.map +1 -1
- package/dist/runner/runStory.js +38 -42
- package/dist/runner/runStory.js.map +1 -1
- package/dist/runner/scheduler.d.ts +11 -0
- package/dist/runner/scheduler.d.ts.map +1 -1
- package/dist/runner/scheduler.js +1 -1
- package/dist/runner/scheduler.js.map +1 -1
- package/dist/runner/steps/intercept.d.ts +6 -4
- package/dist/runner/steps/intercept.d.ts.map +1 -1
- package/dist/runner/steps/intercept.js.map +1 -1
- package/dist/runner/steps/navigate.d.ts +5 -2
- package/dist/runner/steps/navigate.d.ts.map +1 -1
- package/dist/runner/steps/navigate.js +17 -3
- package/dist/runner/steps/navigate.js.map +1 -1
- package/dist/runner/steps/read.d.ts +1 -1
- package/dist/runner/steps/read.js +1 -1
- package/dist/runner/steps/scroll.d.ts +1 -1
- package/dist/runner/steps/scroll.d.ts.map +1 -1
- package/dist/runner/steps/scroll.js +3 -2
- package/dist/runner/steps/scroll.js.map +1 -1
- package/dist/schema/action.d.ts +2 -2
- package/dist/schema/action.d.ts.map +1 -1
- package/dist/schema/action.js +58 -13
- package/dist/schema/action.js.map +1 -1
- package/dist/schema/load.js +1 -1
- package/dist/schema/load.js.map +1 -1
- package/dist/schema/result.d.ts +22 -22
- package/dist/schema/result.d.ts.map +1 -1
- package/dist/schema/result.js +1 -1
- package/dist/schema/story.d.ts +1 -1
- package/dist/schema/story.js +5 -5
- package/dist/screenshots/baselineStore.d.ts +44 -21
- package/dist/screenshots/baselineStore.d.ts.map +1 -1
- package/dist/screenshots/baselineStore.js +59 -28
- package/dist/screenshots/baselineStore.js.map +1 -1
- package/dist/screenshots/capture.d.ts +35 -4
- package/dist/screenshots/capture.d.ts.map +1 -1
- package/dist/screenshots/capture.js +61 -9
- package/dist/screenshots/capture.js.map +1 -1
- package/dist/screenshots/diff.d.ts +57 -8
- package/dist/screenshots/diff.d.ts.map +1 -1
- package/dist/screenshots/diff.js +78 -28
- package/dist/screenshots/diff.js.map +1 -1
- package/dist/util.d.ts +23 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +42 -2
- package/dist/util.js.map +1 -1
- package/package.json +7 -5
|
@@ -10,7 +10,7 @@ const STATUS_LABELS = {
|
|
|
10
10
|
* The matcher token for a breakpoint bucket key, shared by the filter pills and
|
|
11
11
|
* the `[data-breakpoint]` hooks so a token always matches its container. The
|
|
12
12
|
* empty-string key (the defensive parse-guard bucket where a result carried no
|
|
13
|
-
* breakpoint) maps to the reserved `legacy` token
|
|
13
|
+
* breakpoint) maps to the reserved `legacy` token, the same string
|
|
14
14
|
* {@link renderDeletedEntry} uses for the pre-breakpoint layout. Every other key
|
|
15
15
|
* is the real breakpoint name, passed through verbatim.
|
|
16
16
|
*/
|
|
@@ -72,12 +72,12 @@ export function renderReport(result, reportDir, interactiveMode = false) {
|
|
|
72
72
|
* The status totals double as the report's filter controls: each is a native
|
|
73
73
|
* `<button aria-pressed>` single-select filter, with the "stories" total acting
|
|
74
74
|
* as the "show all / clear" control (pressed by default). The expand-all /
|
|
75
|
-
* collapse-all pair sits at the right end of the same row
|
|
75
|
+
* collapse-all pair sits at the right end of the same row, the slot the old
|
|
76
76
|
* coverage stats used to occupy. The `<ul>` stays a plain list (no composite
|
|
77
77
|
* role): a non-filter total and the bulk-toggle group share it, so a
|
|
78
78
|
* radiogroup/fieldset could not cleanly scope just the filters.
|
|
79
79
|
*
|
|
80
|
-
* A second, independent filter dimension
|
|
80
|
+
* A second, independent filter dimension (the breakpoint filter) renders
|
|
81
81
|
* BELOW the totals row inside this same summary region (see
|
|
82
82
|
* {@link renderBreakpointFilters}), but only when the run spans two or more
|
|
83
83
|
* distinct breakpoints. The two dimensions are ANDed by report.js.
|
|
@@ -87,7 +87,7 @@ function renderSummary(result) {
|
|
|
87
87
|
<section class="summary" aria-labelledby="summary-heading">
|
|
88
88
|
<h2 id="summary-heading">summary</h2>
|
|
89
89
|
<ul class="summary-list" aria-label="Run totals">
|
|
90
|
-
${summaryFilter('stories', result.totals.stories, 'all', true, '
|
|
90
|
+
${summaryFilter('stories', result.totals.stories, 'all', true, ', show all stories')}
|
|
91
91
|
${summaryFilter('passed', result.totals.passed, 'pass', false, ', show only passed stories')}
|
|
92
92
|
${summaryFilter('new', result.totals.new, 'new', false, ', show only new stories')}
|
|
93
93
|
${summaryFilter('changed', result.totals.changed, 'changed', false, ', show only changed stories')}
|
|
@@ -105,19 +105,19 @@ function renderSummary(result) {
|
|
|
105
105
|
}
|
|
106
106
|
/**
|
|
107
107
|
* The distinct breakpoints a run spanned, in first-seen order across every
|
|
108
|
-
* story's flat action array
|
|
108
|
+
* story's flat action array, the SAME order {@link renderStoryActions} buckets
|
|
109
109
|
* a single story's groups in, extended across stories. Each distinct breakpoint
|
|
110
110
|
* carries the capture dimensions of the FIRST action seen at it (the same source
|
|
111
111
|
* {@link renderBreakpointGroup} labels a group with), so the filter pill can
|
|
112
112
|
* echo the size.
|
|
113
113
|
*
|
|
114
|
-
* The bucket KEY is `action.breakpoint ?? ''
|
|
114
|
+
* The bucket KEY is `action.breakpoint ?? ''`, identical to
|
|
115
115
|
* {@link renderStoryActions}, so a filter token always matches a rendered
|
|
116
116
|
* `[data-breakpoint]` container. The empty-string key is a defensive parse-guard
|
|
117
117
|
* only (the runner always tags a real breakpoint name); it maps to the reserved
|
|
118
118
|
* `legacy` token/label. A live `ActionResult` never carries the literal
|
|
119
|
-
* `'legacy'` breakpoint
|
|
120
|
-
* (`deleted`) entries
|
|
119
|
+
* `'legacy'` breakpoint. That synthetic name is confined to orphaned-baseline
|
|
120
|
+
* (`deleted`) entries, so the empty-string bucket and a real `legacy` bucket
|
|
121
121
|
* cannot collide within one run's stories.
|
|
122
122
|
*/
|
|
123
123
|
function distinctBreakpoints(result) {
|
|
@@ -141,7 +141,7 @@ function distinctBreakpoints(result) {
|
|
|
141
141
|
/**
|
|
142
142
|
* The breakpoint filter group: a second single-select filter dimension, sibling
|
|
143
143
|
* to the status totals inside the summary region. Rendered ONLY when the run
|
|
144
|
-
* spans two or more distinct breakpoints
|
|
144
|
+
* spans two or more distinct breakpoints. A single-breakpoint run makes the
|
|
145
145
|
* filter a no-op, so the whole group is omitted.
|
|
146
146
|
*
|
|
147
147
|
* Each pill is a native `<button aria-pressed>` toggle (like the status filter),
|
|
@@ -204,7 +204,7 @@ function breakpointFilter(bp) {
|
|
|
204
204
|
* count still reads as the button's description. The accessible name is the
|
|
205
205
|
* visible label plus a visually-hidden action suffix (e.g. ", show only passed
|
|
206
206
|
* stories"), composed from contents so the visible text is never dropped (WCAG
|
|
207
|
-
* 2.5.3
|
|
207
|
+
* 2.5.3, never an aria-label). The `data-filter` token ("pass") is kept
|
|
208
208
|
* distinct from the visible label ("passed") so report.js matches
|
|
209
209
|
* `story[data-status="pass"]`.
|
|
210
210
|
*/
|
|
@@ -218,7 +218,7 @@ function summaryFilter(label, value, filter, pressed, actionSuffix) {
|
|
|
218
218
|
}
|
|
219
219
|
/**
|
|
220
220
|
* Environment-mismatch banner, rendered first inside `<main>` (above the
|
|
221
|
-
* summary) ONLY when `environment.mismatch === true
|
|
221
|
+
* summary) ONLY when `environment.mismatch === true`, i.e. a CI run whose
|
|
222
222
|
* committed baselines were captured under a different, pixel-affecting
|
|
223
223
|
* environment, or whose committed manifest could not be read at all.
|
|
224
224
|
*
|
|
@@ -245,7 +245,7 @@ function renderEnvMismatch(result) {
|
|
|
245
245
|
environment.mismatchKeys[0] === 'manifest';
|
|
246
246
|
const body = isManifestSentinel
|
|
247
247
|
? `<p>The committed baseline manifest could not be read, so the capture environment can't be verified. Expect a full re-approve.</p>`
|
|
248
|
-
: `<p>Expect a full re-approve
|
|
248
|
+
: `<p>Expect a full re-approve. Baselines were captured under a different environment.</p>
|
|
249
249
|
<ul aria-label="Changed environment keys">
|
|
250
250
|
${environment.mismatchKeys
|
|
251
251
|
.map((key) => `<li><code>${escapeHtml(key)}</code></li>`)
|
|
@@ -259,7 +259,7 @@ function renderEnvMismatch(result) {
|
|
|
259
259
|
`;
|
|
260
260
|
}
|
|
261
261
|
/**
|
|
262
|
-
* Deleted (orphaned committed baselines) section
|
|
262
|
+
* Deleted (orphaned committed baselines) section, a peer landmark rendered
|
|
263
263
|
* AFTER the stories section, inside `<main>`, ONLY when `deleted` is non-empty.
|
|
264
264
|
* Lists each orphaned baseline (action + breakpoint) that `approve --prune`
|
|
265
265
|
* would remove. A `'legacy'` breakpoint (the pre-breakpoint `<action>/0.png`
|
|
@@ -313,8 +313,8 @@ function renderStories(result, reportDir, interactiveMode) {
|
|
|
313
313
|
* `id="story-<storyIndex>"` is the deep-link target: report.js reads
|
|
314
314
|
* `location.hash`, scrolls the matching story into view, and expands its
|
|
315
315
|
* screenshots. The index is the story's position in `result.stories` (the same
|
|
316
|
-
* ordinal that keys action ids as `s<storyIndex>-a…`), so the CI comment
|
|
317
|
-
* walks the SAME `results.json` stories array
|
|
316
|
+
* ordinal that keys action ids as `s<storyIndex>-a…`), so the CI comment (which
|
|
317
|
+
* walks the SAME `results.json` stories array) can build `#story-<i>` links
|
|
318
318
|
* without re-deriving a slug. `tabindex="-1"` makes the `<li>` a script focus
|
|
319
319
|
* target so a deep-link lands the reader on the story prose, not mid-list.
|
|
320
320
|
*/
|
|
@@ -339,12 +339,12 @@ function renderStory(story, storyIndex, reportDir, interactiveMode) {
|
|
|
339
339
|
*
|
|
340
340
|
* - Single mode: when the story ran at exactly one breakpoint (the common
|
|
341
341
|
* default `desktop` project), we render the historical flat
|
|
342
|
-
* `<ol class="actions">` with no per-mode caption
|
|
342
|
+
* `<ol class="actions">` with no per-mode caption, no breakpoint chrome
|
|
343
343
|
* when there is only one mode to show.
|
|
344
344
|
* - Multi mode: when the story ran at two or more breakpoints, we render one
|
|
345
345
|
* labelled group per mode so a reader sees results per mode instead of a
|
|
346
346
|
* flat interleaved list. An action with `screenshot:false` still appears
|
|
347
|
-
* once per breakpoint
|
|
347
|
+
* once per breakpoint. It simply renders as a shot-less row in its mode's
|
|
348
348
|
* group, no special-casing needed.
|
|
349
349
|
*
|
|
350
350
|
* `actionId` is keyed by the action's index in the original flat array
|
|
@@ -358,17 +358,19 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
|
|
|
358
358
|
const buckets = new Map();
|
|
359
359
|
story.actions.forEach((action, actionIndex) => {
|
|
360
360
|
const key = action.breakpoint ?? '';
|
|
361
|
-
|
|
362
|
-
|
|
361
|
+
let bucket = buckets.get(key);
|
|
362
|
+
if (bucket === undefined) {
|
|
363
|
+
bucket = [];
|
|
364
|
+
buckets.set(key, bucket);
|
|
363
365
|
order.push(key);
|
|
364
366
|
}
|
|
365
|
-
|
|
367
|
+
bucket.push({ action, id: `s${storyIndex}-a${actionIndex}` });
|
|
366
368
|
});
|
|
367
369
|
// One mode (or untagged) → flat list, no caption. Captions only earn their
|
|
368
370
|
// chrome when there is more than one mode to tell apart. The flat list still
|
|
369
371
|
// carries the `data-breakpoint` hook (keyed off the sole bucket) so the
|
|
370
372
|
// breakpoint filter can hide the whole single-mode story when it does not
|
|
371
|
-
// match
|
|
373
|
+
// match, no visible chrome is added, only the filter hook.
|
|
372
374
|
if (order.length <= 1) {
|
|
373
375
|
const actions = story.actions
|
|
374
376
|
.map((action, actionIndex) => renderAction(action, `s${storyIndex}-a${actionIndex}`, reportDir, interactiveMode))
|
|
@@ -383,14 +385,14 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
|
|
|
383
385
|
}
|
|
384
386
|
/**
|
|
385
387
|
* One labelled per-breakpoint subsection. The mode label carries the breakpoint
|
|
386
|
-
* NAME and its DIMENSIONS
|
|
388
|
+
* NAME and its DIMENSIONS, the real capture size recorded on the result, so
|
|
387
389
|
* per-config and per-story overrides show their actual size. The label is a
|
|
388
390
|
* non-heading caption: stories live inside an `<ol>` list, not a heading
|
|
389
391
|
* outline, so injecting an `<h3>` here would orphan it under the story's
|
|
390
|
-
* list-item subtree. Instead the action list is a labelled region
|
|
392
|
+
* list-item subtree. Instead the action list is a labelled region. Its
|
|
391
393
|
* `<ol aria-labelledby>` points at the visible caption, so assistive tech
|
|
392
394
|
* announces e.g. "mobile 375 by 667 pixels actions" without minting a heading
|
|
393
|
-
* level. The trailing "actions" is an sr-only token inside the caption
|
|
395
|
+
* level. The trailing "actions" is an sr-only token inside the caption.
|
|
394
396
|
* "actions" never appears in the visible label, only in the computed accessible
|
|
395
397
|
* name, so the region reads as a list of actions rather than a bare dimension
|
|
396
398
|
* string.
|
|
@@ -401,7 +403,7 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
|
|
|
401
403
|
*
|
|
402
404
|
* The group `<div>` additionally carries a `data-breakpoint` hook (the bucket
|
|
403
405
|
* key's matcher token) so the breakpoint filter can hide a whole group whose
|
|
404
|
-
* mode is not selected. Purely additive
|
|
406
|
+
* mode is not selected. Purely additive. The caption/label idiom is untouched.
|
|
405
407
|
*/
|
|
406
408
|
function renderBreakpointGroup(key, entries, groupId, reportDir, interactiveMode) {
|
|
407
409
|
const labelId = `${groupId}-label`;
|
|
@@ -468,22 +470,22 @@ ${statusBadge(action.status)}
|
|
|
468
470
|
}
|
|
469
471
|
/**
|
|
470
472
|
* Supplementary per-action prose, rendered inside `li.action` after the
|
|
471
|
-
* row/screenshots/error block. Both are plain `<p role="note"
|
|
473
|
+
* row/screenshots/error block. Both are plain `<p role="note">`, NOT headings:
|
|
472
474
|
* they live in the story `<ol>` subtree, so a heading would orphan under a
|
|
473
475
|
* list-item (same rationale as {@link renderBreakpointGroup}'s caption). Neither
|
|
474
476
|
* is a live region (present at load), so an a11y-only `changed` row can carry
|
|
475
477
|
* BOTH with no double-announce.
|
|
476
478
|
*
|
|
477
|
-
* - candidate note: on `changed`/`new` rows only
|
|
479
|
+
* - candidate note: on `changed`/`new` rows only, supplementary prose flagging
|
|
478
480
|
* "this run's actual screenshot is the proposed new baseline". Names the
|
|
479
481
|
* Actual variant explicitly (the note sits OUTSIDE the <details>, so "this
|
|
480
|
-
* render" would point at whichever tab is selected
|
|
482
|
+
* render" would point at whichever tab is selected, or nothing when
|
|
481
483
|
* collapsed). No aria wiring; it does not duplicate the status badge's
|
|
482
484
|
* sr-only label.
|
|
483
485
|
* - a11y-drift note: gated STRICTLY on `a11yChanged === true`, NEVER inferred
|
|
484
486
|
* from a missing `diffPath` (a size-mismatch `changed` row also lacks a
|
|
485
487
|
* diffPath yet deliberately omits `a11yChanged`; keying on `!diffPath` would
|
|
486
|
-
* misfire on it
|
|
488
|
+
* misfire on it, the load-bearing discriminator, per the ActionResult
|
|
487
489
|
* contract). Renders the recorded `a11yBaselinePath` as plain escaped
|
|
488
490
|
* `<code>` TEXT, not a link (the report is portable / opened over file://),
|
|
489
491
|
* relativized like the other paths when absolute.
|
|
@@ -536,7 +538,7 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
|
|
|
536
538
|
// radio-tab output below, byte-identical with the pre-interactiveMode render.
|
|
537
539
|
//
|
|
538
540
|
// When the baseline and actual differ in dimensions the diff is uncomputable
|
|
539
|
-
// (renderDiffStats' unavailable branch
|
|
541
|
+
// (renderDiffStats' unavailable branch: both paths present, `changed` status,
|
|
540
542
|
// a recorded failureMessage, no diffRatio). Press-flipping between two
|
|
541
543
|
// differently-sized captures misaligns everything and reads as "everything
|
|
542
544
|
// changed", so fall back to the radio-tab render: visible panels, baseline +
|
|
@@ -549,7 +551,7 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
|
|
|
549
551
|
}
|
|
550
552
|
// A `new` baseline writes its baseline straight from this run's actual, so the
|
|
551
553
|
// two paths point at byte-identical PNGs. There is no prior state to compare
|
|
552
|
-
// against, so suppress the baseline variant for display
|
|
554
|
+
// against, so suppress the baseline variant for display. Like the diff, it is
|
|
553
555
|
// not a real artifact here. The path stays in the data model for `approve`.
|
|
554
556
|
const baseline = action.baselinePath && action.status !== 'new'
|
|
555
557
|
? toReportRelative(reportDir, action.baselinePath)
|
|
@@ -569,15 +571,15 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
|
|
|
569
571
|
const diffStats = renderDiffStats(action, diffStatsId);
|
|
570
572
|
// renderDiffStats emits the `diff-stats--unavailable` note (with this id) when
|
|
571
573
|
// the diff is uncomputable. The diff radio is disabled in that case, so wire
|
|
572
|
-
// its aria-describedby to the note
|
|
574
|
+
// its aria-describedby to the note. A keyboard/AT user reaching the disabled
|
|
573
575
|
// diff option then hears why no diff exists. (The diff PANEL only takes the
|
|
574
576
|
// association when a real diff image renders, below.)
|
|
575
577
|
const diffNoteUnavailable = isDiffUnavailable(action);
|
|
576
578
|
// When only one variant is real (the common case for a `new` baseline, whose
|
|
577
579
|
// baseline is suppressed and has no diff), a radio group offering a single
|
|
578
580
|
// choice is noise to AT. Drop the controls and show the image alone; the row's
|
|
579
|
-
// status badge already announces "new baseline". Zero variants
|
|
580
|
-
// whose actual capture is somehow missing
|
|
581
|
+
// status badge already announces "new baseline". Zero variants (a `new` row
|
|
582
|
+
// whose actual capture is somehow missing) collapses to nothing.
|
|
581
583
|
const soleVariant = ['baseline', 'actual', 'diff'].filter((name) => available[name] !== undefined);
|
|
582
584
|
if (soleVariant.length <= 1) {
|
|
583
585
|
const only = soleVariant[0];
|
|
@@ -610,13 +612,13 @@ const SHOT_ALT = {
|
|
|
610
612
|
* The pixel-diff overlay only exists when baseline and actual share dimensions.
|
|
611
613
|
* A mismatch (e.g. a fullPage capture whose document grew taller) throws before
|
|
612
614
|
* a diff is computed, so `diffRatio` is absent and there is no diff image to
|
|
613
|
-
* show
|
|
615
|
+
* show. Surface the recorded reason here, in the slot the "% differs" stat
|
|
614
616
|
* would normally occupy, so a "changed" row never reads as an unexplained no-op.
|
|
615
617
|
*
|
|
616
618
|
* The mismatch note folds baseline and actual sizes into ONE sentence and renders
|
|
617
619
|
* each dimension pair in the file's split idiom (a `breakpoint-dimensions` span
|
|
618
620
|
* carrying the `×` glyph for sight, plus an `sr-only` "W by H pixels" longhand for
|
|
619
|
-
* AT
|
|
621
|
+
* AT, never a bare `x`). It reads those numbers from the structured
|
|
620
622
|
* `action.sizeMismatch` pair, NOT by parsing `failureMessage`. When that pair is
|
|
621
623
|
* absent (a malformed or older result), it falls back to escaping the recorded
|
|
622
624
|
* `failureMessage` prose rather than risk a wrong parse.
|
|
@@ -629,7 +631,7 @@ function renderDiffStats(action, diffStatsId) {
|
|
|
629
631
|
return '';
|
|
630
632
|
}
|
|
631
633
|
const label = action.sizeMismatch
|
|
632
|
-
? `No pixel diff
|
|
634
|
+
? `No pixel diff. Screenshot resized from ${dimensionPair(action.sizeMismatch.baseline)} to ${dimensionPair(action.sizeMismatch.actual)}.`
|
|
633
635
|
: `No pixel diff. ${escapeHtml(action.failureMessage)}`;
|
|
634
636
|
return `<p class="diff-stats diff-stats--unavailable" id="${diffStatsId}"><span class="label">${label}</span></p>`;
|
|
635
637
|
}
|
|
@@ -648,7 +650,7 @@ function dimensionPair(size) {
|
|
|
648
650
|
}
|
|
649
651
|
/**
|
|
650
652
|
* Interactive screenshot viewer (interactiveMode). One native radio group per
|
|
651
|
-
* action is the committed-state source of truth
|
|
653
|
+
* action is the committed-state source of truth. Keyboard, touch, and AT all
|
|
652
654
|
* operate the radios (reusing `name="${actionId}-shot"`), and the chips render
|
|
653
655
|
* permanently visible (the mouse/touch path to every variant, including Diff).
|
|
654
656
|
* report.js layers a VISUAL-ONLY press-and-hold blink-compare on a SINGLE
|
|
@@ -656,20 +658,20 @@ function dimensionPair(size) {
|
|
|
656
658
|
* normally, actual when baseline is committed); release/leave/dragstart
|
|
657
659
|
* reverts. No hover behavior. The gesture rewrites only the img src and the
|
|
658
660
|
* aria-hidden "Showing:" caption (which names the DISPLAYED variant, preview
|
|
659
|
-
* included)
|
|
661
|
+
* included), never radio state, the img alt, or any ARIA. The controls +
|
|
660
662
|
* caption live OUTSIDE the clipped `.shot-stage` so
|
|
661
663
|
* the focus ring is never clipped or painted over screenshot pixels. The diff
|
|
662
|
-
* variant
|
|
664
|
+
* variant, and its radio, is omitted entirely (not disabled) when this action
|
|
663
665
|
* produced no diff image; the existing diff-stats association then rides on the
|
|
664
666
|
* diff radio control rather than the image, leaving no dangling describedby.
|
|
665
667
|
* (Distinct from the dimension-mismatch case, where the diff is uncomputable:
|
|
666
668
|
* renderScreenshots never reaches this viewer and instead falls back to the
|
|
667
|
-
* radio-tab render with a disabled
|
|
669
|
+
* radio-tab render with a disabled (not omitted) diff radio.)
|
|
668
670
|
*/
|
|
669
671
|
function renderInteractiveScreenshots(action, actionId, reportDir) {
|
|
670
672
|
// A `new` baseline writes its baseline straight from this run's actual, so the
|
|
671
673
|
// two paths point at byte-identical PNGs. There is no prior state to compare
|
|
672
|
-
// against, so suppress the baseline variant for display
|
|
674
|
+
// against, so suppress the baseline variant for display. Like the diff, it is
|
|
673
675
|
// omitted (no radio, no image). The path stays in the data model for `approve`.
|
|
674
676
|
const baseline = action.baselinePath && action.status !== 'new'
|
|
675
677
|
? toReportRelative(reportDir, action.baselinePath)
|
|
@@ -683,14 +685,14 @@ function renderInteractiveScreenshots(action, actionId, reportDir) {
|
|
|
683
685
|
// Default committed variant is `actual`; only a baseline-only row (no actual
|
|
684
686
|
// capture this run) commits to baseline instead. renderScreenshots' guard
|
|
685
687
|
// guarantees at least one of the two exists, so `committedSrc` is never empty
|
|
686
|
-
// at runtime
|
|
688
|
+
// at runtime. The `?? ''` only satisfies the optional types.
|
|
687
689
|
const committed = actual !== undefined ? 'actual' : 'baseline';
|
|
688
690
|
const committedSrc = (committed === 'actual' ? actual : baseline) ?? '';
|
|
689
691
|
// When only one variant is real (the common case for a `new` baseline, whose
|
|
690
692
|
// baseline is suppressed and has no diff), the press-and-hold flip has nothing
|
|
691
|
-
// to toggle to
|
|
692
|
-
// the row's status badge already announces "new baseline". Zero variants
|
|
693
|
-
// `new` row whose actual capture is missing
|
|
693
|
+
// to toggle to. A lone radio in a group is noise to AT. Render the image alone;
|
|
694
|
+
// the row's status badge already announces "new baseline". Zero variants (a
|
|
695
|
+
// `new` row whose actual capture is missing) collapses to nothing.
|
|
694
696
|
const variantCount = [baseline, actual, diff].filter((v) => v !== undefined).length;
|
|
695
697
|
if (variantCount === 0) {
|
|
696
698
|
return '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/reporter/template.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/reporter/template.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/approve.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface ApproveSummary {
|
|
|
23
23
|
/**
|
|
24
24
|
* `approve` is dual-mode. Plain `approve` (this module, {@link approveAll})
|
|
25
25
|
* refreshes the local per-machine comparison cache (`paths.localCache`) from the
|
|
26
|
-
* last run's `<report>/results.json`. Advisory
|
|
26
|
+
* last run's `<report>/results.json`. Advisory. It never writes committed
|
|
27
27
|
* baselines. The other half, `approve --from <dir>` (`approveFrom`), promotes a
|
|
28
28
|
* CI candidate tree into the committed `paths.baselines` set and lives in its
|
|
29
29
|
* own module (`approveFrom.ts`), since the two commands share no code beyond the
|
|
@@ -34,17 +34,17 @@ export interface ApproveSummary {
|
|
|
34
34
|
* comparison cache with every `changed` or `new` action's actual screenshot.
|
|
35
35
|
* The accessibility-tree snapshot (`a11y.yaml`) travels alongside the PNG so
|
|
36
36
|
* the cached a11y baseline stays in lock-step with the visual one. The optional
|
|
37
|
-
* filters
|
|
38
|
-
* `newOnly` (new not changed)
|
|
37
|
+
* filters, `storyFilter` (one story), `breakpoints` (named modes), and
|
|
38
|
+
* `newOnly` (new not changed), compose as an AND: an action is refreshed only
|
|
39
39
|
* when it clears every filter that was supplied.
|
|
40
40
|
*
|
|
41
41
|
* This command targets `paths.localCache` ONLY. It never writes the committed
|
|
42
|
-
* `paths.baselines` set
|
|
42
|
+
* `paths.baselines` set. Those are owned by CI and written solely through the
|
|
43
43
|
* approval flow (`approve --from`, a later wave). Each recorded baseline path is
|
|
44
44
|
* re-rooted onto `paths.localCache`, keeping its `<action>/<file>` tail, so a
|
|
45
45
|
* plain `approve` refreshes the cache regardless of which mode produced the run
|
|
46
46
|
* (the recorded root may be the cache or, for an older CI run's results, the
|
|
47
|
-
* committed baselines dir
|
|
47
|
+
* committed baselines dir, either way the copy lands in the cache).
|
|
48
48
|
*/
|
|
49
49
|
export declare function approveAll(config: ResolvedConfig, options: ApproveOptions): Promise<ApproveSummary>;
|
|
50
50
|
//# sourceMappingURL=approve.d.ts.map
|
package/dist/runner/approve.js
CHANGED
|
@@ -7,7 +7,7 @@ import { storyMatchesFilter } from "./storyFilter.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* `approve` is dual-mode. Plain `approve` (this module, {@link approveAll})
|
|
9
9
|
* refreshes the local per-machine comparison cache (`paths.localCache`) from the
|
|
10
|
-
* last run's `<report>/results.json`. Advisory
|
|
10
|
+
* last run's `<report>/results.json`. Advisory. It never writes committed
|
|
11
11
|
* baselines. The other half, `approve --from <dir>` (`approveFrom`), promotes a
|
|
12
12
|
* CI candidate tree into the committed `paths.baselines` set and lives in its
|
|
13
13
|
* own module (`approveFrom.ts`), since the two commands share no code beyond the
|
|
@@ -18,17 +18,17 @@ import { storyMatchesFilter } from "./storyFilter.js";
|
|
|
18
18
|
* comparison cache with every `changed` or `new` action's actual screenshot.
|
|
19
19
|
* The accessibility-tree snapshot (`a11y.yaml`) travels alongside the PNG so
|
|
20
20
|
* the cached a11y baseline stays in lock-step with the visual one. The optional
|
|
21
|
-
* filters
|
|
22
|
-
* `newOnly` (new not changed)
|
|
21
|
+
* filters, `storyFilter` (one story), `breakpoints` (named modes), and
|
|
22
|
+
* `newOnly` (new not changed), compose as an AND: an action is refreshed only
|
|
23
23
|
* when it clears every filter that was supplied.
|
|
24
24
|
*
|
|
25
25
|
* This command targets `paths.localCache` ONLY. It never writes the committed
|
|
26
|
-
* `paths.baselines` set
|
|
26
|
+
* `paths.baselines` set. Those are owned by CI and written solely through the
|
|
27
27
|
* approval flow (`approve --from`, a later wave). Each recorded baseline path is
|
|
28
28
|
* re-rooted onto `paths.localCache`, keeping its `<action>/<file>` tail, so a
|
|
29
29
|
* plain `approve` refreshes the cache regardless of which mode produced the run
|
|
30
30
|
* (the recorded root may be the cache or, for an older CI run's results, the
|
|
31
|
-
* committed baselines dir
|
|
31
|
+
* committed baselines dir, either way the copy lands in the cache).
|
|
32
32
|
*/
|
|
33
33
|
export async function approveAll(config, options) {
|
|
34
34
|
const resultsPath = join(config.paths.report, 'results.json');
|
|
@@ -6,7 +6,7 @@ export interface ApproveFromOptions {
|
|
|
6
6
|
* When `true`, delete committed baseline entries the candidate run's
|
|
7
7
|
* `results.json` recorded as orphaned (`results.deleted`). Prune targets are
|
|
8
8
|
* always recomputed locally under `paths.baselines` from each entry's
|
|
9
|
-
* `action`/`breakpoint
|
|
9
|
+
* `action`/`breakpoint`, never the artifact's own `baselinePaths[]` strings,
|
|
10
10
|
* which describe another machine's filesystem.
|
|
11
11
|
*/
|
|
12
12
|
prune?: boolean;
|
|
@@ -19,7 +19,7 @@ export interface ApproveFromSummary {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Error thrown when the candidate tree fails a trust-boundary check. Carries no
|
|
22
|
-
* extra data
|
|
22
|
+
* extra data. The message is the whole contract. Distinct type so the CLI can
|
|
23
23
|
* present it plainly; every throw here happens BEFORE any write, so the promise
|
|
24
24
|
* rejecting guarantees `paths.baselines` was not touched.
|
|
25
25
|
*/
|
|
@@ -32,11 +32,11 @@ export declare class ApproveFromError extends Error {
|
|
|
32
32
|
* `paths.baselines` set, and writes `<baselines>/manifest.json` from the
|
|
33
33
|
* candidate run's captured environment.
|
|
34
34
|
*
|
|
35
|
-
* TRUST BOUNDARY. `<dir>` is an untrusted artifact
|
|
35
|
+
* TRUST BOUNDARY. `<dir>` is an untrusted artifact. A human or bot unzipped it
|
|
36
36
|
* from CI. This is the only path that writes committed baselines, so it is
|
|
37
37
|
* fail-closed and validate-all-then-write:
|
|
38
38
|
* 1. `results.json` must parse, describe a clean CI run (`mode: 'ci'` with
|
|
39
|
-
* `totals.failed === 0
|
|
39
|
+
* `totals.failed === 0`, never promote a local or broken run's partial
|
|
40
40
|
* tree, see {@link assertPromotableRun}), and carry a well-shaped
|
|
41
41
|
* `environment.actual` block (validated against the manifest shape, not
|
|
42
42
|
* just present).
|
|
@@ -46,13 +46,13 @@ export declare class ApproveFromError extends Error {
|
|
|
46
46
|
* entry aborts with {@link ApproveFromError} and zero filesystem changes.
|
|
47
47
|
*
|
|
48
48
|
* Every candidate file's bytes are read once during phase 1 and RETAINED for
|
|
49
|
-
* phase 2, which writes exactly those bytes
|
|
49
|
+
* phase 2, which writes exactly those bytes. The sources are never re-read, so
|
|
50
50
|
* the committed baseline is provably the payload that passed validation (no
|
|
51
51
|
* decode-swap / symlink-swap window between the check and the write).
|
|
52
52
|
*
|
|
53
|
-
* PNGs are written through {@link
|
|
54
|
-
* promoted baseline is losslessly recompressed and provably decodable in
|
|
55
|
-
* step
|
|
53
|
+
* PNGs are written through {@link writeDurablePng} (decode→recompress→encode),
|
|
54
|
+
* so the promoted baseline is losslessly recompressed and provably decodable in
|
|
55
|
+
* one step, never a raw `copyFile` of unvalidated artifact bytes.
|
|
56
56
|
*/
|
|
57
57
|
export declare function approveFrom(config: ResolvedConfig, options: ApproveFromOptions): Promise<ApproveFromSummary>;
|
|
58
58
|
//# sourceMappingURL=approveFrom.d.ts.map
|