tuffgal 0.2.0-alpha.2 → 0.2.0-alpha.4
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 -19
- 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 +81 -21
- package/dist/reporter/template.js +56 -45
- 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 +72 -34
- 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 +4 -8
|
@@ -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`
|
|
@@ -309,9 +309,18 @@ function renderStories(result, reportDir, interactiveMode) {
|
|
|
309
309
|
</section>
|
|
310
310
|
`;
|
|
311
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* `id="story-<storyIndex>"` is the deep-link target: report.js reads
|
|
314
|
+
* `location.hash`, scrolls the matching story into view, and expands its
|
|
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 (which
|
|
317
|
+
* walks the SAME `results.json` stories array) can build `#story-<i>` links
|
|
318
|
+
* without re-deriving a slug. `tabindex="-1"` makes the `<li>` a script focus
|
|
319
|
+
* target so a deep-link lands the reader on the story prose, not mid-list.
|
|
320
|
+
*/
|
|
312
321
|
function renderStory(story, storyIndex, reportDir, interactiveMode) {
|
|
313
322
|
return `
|
|
314
|
-
<li class="story" data-status="${story.status}">
|
|
323
|
+
<li class="story" data-status="${story.status}" id="story-${storyIndex}" tabindex="-1">
|
|
315
324
|
<div class="story-row">
|
|
316
325
|
<span class="story-marker" aria-hidden="true">${STATUS_MARKERS[story.status]}</span>
|
|
317
326
|
<span class="sr-only">${STATUS_LABELS[story.status]}</span>
|
|
@@ -330,12 +339,12 @@ function renderStory(story, storyIndex, reportDir, interactiveMode) {
|
|
|
330
339
|
*
|
|
331
340
|
* - Single mode: when the story ran at exactly one breakpoint (the common
|
|
332
341
|
* default `desktop` project), we render the historical flat
|
|
333
|
-
* `<ol class="actions">` with no per-mode caption
|
|
342
|
+
* `<ol class="actions">` with no per-mode caption, no breakpoint chrome
|
|
334
343
|
* when there is only one mode to show.
|
|
335
344
|
* - Multi mode: when the story ran at two or more breakpoints, we render one
|
|
336
345
|
* labelled group per mode so a reader sees results per mode instead of a
|
|
337
346
|
* flat interleaved list. An action with `screenshot:false` still appears
|
|
338
|
-
* once per breakpoint
|
|
347
|
+
* once per breakpoint. It simply renders as a shot-less row in its mode's
|
|
339
348
|
* group, no special-casing needed.
|
|
340
349
|
*
|
|
341
350
|
* `actionId` is keyed by the action's index in the original flat array
|
|
@@ -349,17 +358,19 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
|
|
|
349
358
|
const buckets = new Map();
|
|
350
359
|
story.actions.forEach((action, actionIndex) => {
|
|
351
360
|
const key = action.breakpoint ?? '';
|
|
352
|
-
|
|
353
|
-
|
|
361
|
+
let bucket = buckets.get(key);
|
|
362
|
+
if (bucket === undefined) {
|
|
363
|
+
bucket = [];
|
|
364
|
+
buckets.set(key, bucket);
|
|
354
365
|
order.push(key);
|
|
355
366
|
}
|
|
356
|
-
|
|
367
|
+
bucket.push({ action, id: `s${storyIndex}-a${actionIndex}` });
|
|
357
368
|
});
|
|
358
369
|
// One mode (or untagged) → flat list, no caption. Captions only earn their
|
|
359
370
|
// chrome when there is more than one mode to tell apart. The flat list still
|
|
360
371
|
// carries the `data-breakpoint` hook (keyed off the sole bucket) so the
|
|
361
372
|
// breakpoint filter can hide the whole single-mode story when it does not
|
|
362
|
-
// match
|
|
373
|
+
// match, no visible chrome is added, only the filter hook.
|
|
363
374
|
if (order.length <= 1) {
|
|
364
375
|
const actions = story.actions
|
|
365
376
|
.map((action, actionIndex) => renderAction(action, `s${storyIndex}-a${actionIndex}`, reportDir, interactiveMode))
|
|
@@ -374,14 +385,14 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
|
|
|
374
385
|
}
|
|
375
386
|
/**
|
|
376
387
|
* One labelled per-breakpoint subsection. The mode label carries the breakpoint
|
|
377
|
-
* NAME and its DIMENSIONS
|
|
388
|
+
* NAME and its DIMENSIONS, the real capture size recorded on the result, so
|
|
378
389
|
* per-config and per-story overrides show their actual size. The label is a
|
|
379
390
|
* non-heading caption: stories live inside an `<ol>` list, not a heading
|
|
380
391
|
* outline, so injecting an `<h3>` here would orphan it under the story's
|
|
381
|
-
* list-item subtree. Instead the action list is a labelled region
|
|
392
|
+
* list-item subtree. Instead the action list is a labelled region. Its
|
|
382
393
|
* `<ol aria-labelledby>` points at the visible caption, so assistive tech
|
|
383
394
|
* announces e.g. "mobile 375 by 667 pixels actions" without minting a heading
|
|
384
|
-
* 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.
|
|
385
396
|
* "actions" never appears in the visible label, only in the computed accessible
|
|
386
397
|
* name, so the region reads as a list of actions rather than a bare dimension
|
|
387
398
|
* string.
|
|
@@ -392,7 +403,7 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
|
|
|
392
403
|
*
|
|
393
404
|
* The group `<div>` additionally carries a `data-breakpoint` hook (the bucket
|
|
394
405
|
* key's matcher token) so the breakpoint filter can hide a whole group whose
|
|
395
|
-
* mode is not selected. Purely additive
|
|
406
|
+
* mode is not selected. Purely additive. The caption/label idiom is untouched.
|
|
396
407
|
*/
|
|
397
408
|
function renderBreakpointGroup(key, entries, groupId, reportDir, interactiveMode) {
|
|
398
409
|
const labelId = `${groupId}-label`;
|
|
@@ -459,22 +470,22 @@ ${statusBadge(action.status)}
|
|
|
459
470
|
}
|
|
460
471
|
/**
|
|
461
472
|
* Supplementary per-action prose, rendered inside `li.action` after the
|
|
462
|
-
* row/screenshots/error block. Both are plain `<p role="note"
|
|
473
|
+
* row/screenshots/error block. Both are plain `<p role="note">`, NOT headings:
|
|
463
474
|
* they live in the story `<ol>` subtree, so a heading would orphan under a
|
|
464
475
|
* list-item (same rationale as {@link renderBreakpointGroup}'s caption). Neither
|
|
465
476
|
* is a live region (present at load), so an a11y-only `changed` row can carry
|
|
466
477
|
* BOTH with no double-announce.
|
|
467
478
|
*
|
|
468
|
-
* - candidate note: on `changed`/`new` rows only
|
|
479
|
+
* - candidate note: on `changed`/`new` rows only, supplementary prose flagging
|
|
469
480
|
* "this run's actual screenshot is the proposed new baseline". Names the
|
|
470
481
|
* Actual variant explicitly (the note sits OUTSIDE the <details>, so "this
|
|
471
|
-
* render" would point at whichever tab is selected
|
|
482
|
+
* render" would point at whichever tab is selected, or nothing when
|
|
472
483
|
* collapsed). No aria wiring; it does not duplicate the status badge's
|
|
473
484
|
* sr-only label.
|
|
474
485
|
* - a11y-drift note: gated STRICTLY on `a11yChanged === true`, NEVER inferred
|
|
475
486
|
* from a missing `diffPath` (a size-mismatch `changed` row also lacks a
|
|
476
487
|
* diffPath yet deliberately omits `a11yChanged`; keying on `!diffPath` would
|
|
477
|
-
* misfire on it
|
|
488
|
+
* misfire on it, the load-bearing discriminator, per the ActionResult
|
|
478
489
|
* contract). Renders the recorded `a11yBaselinePath` as plain escaped
|
|
479
490
|
* `<code>` TEXT, not a link (the report is portable / opened over file://),
|
|
480
491
|
* relativized like the other paths when absolute.
|
|
@@ -527,7 +538,7 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
|
|
|
527
538
|
// radio-tab output below, byte-identical with the pre-interactiveMode render.
|
|
528
539
|
//
|
|
529
540
|
// When the baseline and actual differ in dimensions the diff is uncomputable
|
|
530
|
-
// (renderDiffStats' unavailable branch
|
|
541
|
+
// (renderDiffStats' unavailable branch: both paths present, `changed` status,
|
|
531
542
|
// a recorded failureMessage, no diffRatio). Press-flipping between two
|
|
532
543
|
// differently-sized captures misaligns everything and reads as "everything
|
|
533
544
|
// changed", so fall back to the radio-tab render: visible panels, baseline +
|
|
@@ -540,7 +551,7 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
|
|
|
540
551
|
}
|
|
541
552
|
// A `new` baseline writes its baseline straight from this run's actual, so the
|
|
542
553
|
// two paths point at byte-identical PNGs. There is no prior state to compare
|
|
543
|
-
// against, so suppress the baseline variant for display
|
|
554
|
+
// against, so suppress the baseline variant for display. Like the diff, it is
|
|
544
555
|
// not a real artifact here. The path stays in the data model for `approve`.
|
|
545
556
|
const baseline = action.baselinePath && action.status !== 'new'
|
|
546
557
|
? toReportRelative(reportDir, action.baselinePath)
|
|
@@ -560,15 +571,15 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
|
|
|
560
571
|
const diffStats = renderDiffStats(action, diffStatsId);
|
|
561
572
|
// renderDiffStats emits the `diff-stats--unavailable` note (with this id) when
|
|
562
573
|
// the diff is uncomputable. The diff radio is disabled in that case, so wire
|
|
563
|
-
// its aria-describedby to the note
|
|
574
|
+
// its aria-describedby to the note. A keyboard/AT user reaching the disabled
|
|
564
575
|
// diff option then hears why no diff exists. (The diff PANEL only takes the
|
|
565
576
|
// association when a real diff image renders, below.)
|
|
566
577
|
const diffNoteUnavailable = isDiffUnavailable(action);
|
|
567
578
|
// When only one variant is real (the common case for a `new` baseline, whose
|
|
568
579
|
// baseline is suppressed and has no diff), a radio group offering a single
|
|
569
580
|
// choice is noise to AT. Drop the controls and show the image alone; the row's
|
|
570
|
-
// status badge already announces "new baseline". Zero variants
|
|
571
|
-
// 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.
|
|
572
583
|
const soleVariant = ['baseline', 'actual', 'diff'].filter((name) => available[name] !== undefined);
|
|
573
584
|
if (soleVariant.length <= 1) {
|
|
574
585
|
const only = soleVariant[0];
|
|
@@ -601,13 +612,13 @@ const SHOT_ALT = {
|
|
|
601
612
|
* The pixel-diff overlay only exists when baseline and actual share dimensions.
|
|
602
613
|
* A mismatch (e.g. a fullPage capture whose document grew taller) throws before
|
|
603
614
|
* a diff is computed, so `diffRatio` is absent and there is no diff image to
|
|
604
|
-
* show
|
|
615
|
+
* show. Surface the recorded reason here, in the slot the "% differs" stat
|
|
605
616
|
* would normally occupy, so a "changed" row never reads as an unexplained no-op.
|
|
606
617
|
*
|
|
607
618
|
* The mismatch note folds baseline and actual sizes into ONE sentence and renders
|
|
608
619
|
* each dimension pair in the file's split idiom (a `breakpoint-dimensions` span
|
|
609
620
|
* carrying the `×` glyph for sight, plus an `sr-only` "W by H pixels" longhand for
|
|
610
|
-
* AT
|
|
621
|
+
* AT, never a bare `x`). It reads those numbers from the structured
|
|
611
622
|
* `action.sizeMismatch` pair, NOT by parsing `failureMessage`. When that pair is
|
|
612
623
|
* absent (a malformed or older result), it falls back to escaping the recorded
|
|
613
624
|
* `failureMessage` prose rather than risk a wrong parse.
|
|
@@ -620,7 +631,7 @@ function renderDiffStats(action, diffStatsId) {
|
|
|
620
631
|
return '';
|
|
621
632
|
}
|
|
622
633
|
const label = action.sizeMismatch
|
|
623
|
-
? `No pixel diff
|
|
634
|
+
? `No pixel diff. Screenshot resized from ${dimensionPair(action.sizeMismatch.baseline)} to ${dimensionPair(action.sizeMismatch.actual)}.`
|
|
624
635
|
: `No pixel diff. ${escapeHtml(action.failureMessage)}`;
|
|
625
636
|
return `<p class="diff-stats diff-stats--unavailable" id="${diffStatsId}"><span class="label">${label}</span></p>`;
|
|
626
637
|
}
|
|
@@ -639,7 +650,7 @@ function dimensionPair(size) {
|
|
|
639
650
|
}
|
|
640
651
|
/**
|
|
641
652
|
* Interactive screenshot viewer (interactiveMode). One native radio group per
|
|
642
|
-
* action is the committed-state source of truth
|
|
653
|
+
* action is the committed-state source of truth. Keyboard, touch, and AT all
|
|
643
654
|
* operate the radios (reusing `name="${actionId}-shot"`), and the chips render
|
|
644
655
|
* permanently visible (the mouse/touch path to every variant, including Diff).
|
|
645
656
|
* report.js layers a VISUAL-ONLY press-and-hold blink-compare on a SINGLE
|
|
@@ -647,20 +658,20 @@ function dimensionPair(size) {
|
|
|
647
658
|
* normally, actual when baseline is committed); release/leave/dragstart
|
|
648
659
|
* reverts. No hover behavior. The gesture rewrites only the img src and the
|
|
649
660
|
* aria-hidden "Showing:" caption (which names the DISPLAYED variant, preview
|
|
650
|
-
* included)
|
|
661
|
+
* included), never radio state, the img alt, or any ARIA. The controls +
|
|
651
662
|
* caption live OUTSIDE the clipped `.shot-stage` so
|
|
652
663
|
* the focus ring is never clipped or painted over screenshot pixels. The diff
|
|
653
|
-
* variant
|
|
664
|
+
* variant, and its radio, is omitted entirely (not disabled) when this action
|
|
654
665
|
* produced no diff image; the existing diff-stats association then rides on the
|
|
655
666
|
* diff radio control rather than the image, leaving no dangling describedby.
|
|
656
667
|
* (Distinct from the dimension-mismatch case, where the diff is uncomputable:
|
|
657
668
|
* renderScreenshots never reaches this viewer and instead falls back to the
|
|
658
|
-
* radio-tab render with a disabled
|
|
669
|
+
* radio-tab render with a disabled (not omitted) diff radio.)
|
|
659
670
|
*/
|
|
660
671
|
function renderInteractiveScreenshots(action, actionId, reportDir) {
|
|
661
672
|
// A `new` baseline writes its baseline straight from this run's actual, so the
|
|
662
673
|
// two paths point at byte-identical PNGs. There is no prior state to compare
|
|
663
|
-
// against, so suppress the baseline variant for display
|
|
674
|
+
// against, so suppress the baseline variant for display. Like the diff, it is
|
|
664
675
|
// omitted (no radio, no image). The path stays in the data model for `approve`.
|
|
665
676
|
const baseline = action.baselinePath && action.status !== 'new'
|
|
666
677
|
? toReportRelative(reportDir, action.baselinePath)
|
|
@@ -674,14 +685,14 @@ function renderInteractiveScreenshots(action, actionId, reportDir) {
|
|
|
674
685
|
// Default committed variant is `actual`; only a baseline-only row (no actual
|
|
675
686
|
// capture this run) commits to baseline instead. renderScreenshots' guard
|
|
676
687
|
// guarantees at least one of the two exists, so `committedSrc` is never empty
|
|
677
|
-
// at runtime
|
|
688
|
+
// at runtime. The `?? ''` only satisfies the optional types.
|
|
678
689
|
const committed = actual !== undefined ? 'actual' : 'baseline';
|
|
679
690
|
const committedSrc = (committed === 'actual' ? actual : baseline) ?? '';
|
|
680
691
|
// When only one variant is real (the common case for a `new` baseline, whose
|
|
681
692
|
// baseline is suppressed and has no diff), the press-and-hold flip has nothing
|
|
682
|
-
// to toggle to
|
|
683
|
-
// the row's status badge already announces "new baseline". Zero variants
|
|
684
|
-
// `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.
|
|
685
696
|
const variantCount = [baseline, actual, diff].filter((v) => v !== undefined).length;
|
|
686
697
|
if (variantCount === 0) {
|
|
687
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
|