@testivai/witness 2.4.0 → 2.5.0
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/dist/baselines/store.d.ts +17 -0
- package/dist/baselines/store.d.ts.map +1 -1
- package/dist/baselines/store.js +30 -1
- package/dist/baselines/store.js.map +1 -1
- package/dist/bin/testivai.js +2 -0
- package/dist/bin/testivai.js.map +1 -1
- package/dist/capture/environment.d.ts +217 -0
- package/dist/capture/environment.d.ts.map +1 -0
- package/dist/capture/environment.js +399 -0
- package/dist/capture/environment.js.map +1 -0
- package/dist/commands/env.d.ts +37 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +113 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/config/local-config.d.ts +14 -0
- package/dist/config/local-config.d.ts.map +1 -1
- package/dist/config/local-config.js +1 -0
- package/dist/config/local-config.js.map +1 -1
- package/dist/config/validate-config.d.ts.map +1 -1
- package/dist/config/validate-config.js +12 -0
- package/dist/config/validate-config.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -1
- package/dist/index.js.map +1 -1
- package/dist/report/anchor.d.ts +18 -0
- package/dist/report/anchor.d.ts.map +1 -0
- package/dist/report/anchor.js +51 -0
- package/dist/report/anchor.js.map +1 -0
- package/dist/report/compare.d.ts +7 -0
- package/dist/report/compare.d.ts.map +1 -1
- package/dist/report/compare.js +22 -2
- package/dist/report/compare.js.map +1 -1
- package/dist/report/environment.d.ts +101 -0
- package/dist/report/environment.d.ts.map +1 -0
- package/dist/report/environment.js +331 -0
- package/dist/report/environment.js.map +1 -0
- package/dist/report/generator.d.ts +7 -2
- package/dist/report/generator.d.ts.map +1 -1
- package/dist/report/generator.js +33 -6
- package/dist/report/generator.js.map +1 -1
- package/dist/report/index.d.ts +5 -2
- package/dist/report/index.d.ts.map +1 -1
- package/dist/report/index.js +11 -1
- package/dist/report/index.js.map +1 -1
- package/dist/report/results.d.ts +33 -0
- package/dist/report/results.d.ts.map +1 -1
- package/dist/report/template.d.ts +28 -1
- package/dist/report/template.d.ts.map +1 -1
- package/dist/report/template.js +127 -15
- package/dist/report/template.js.map +1 -1
- package/dist/report/validate.d.ts +50 -0
- package/dist/report/validate.d.ts.map +1 -0
- package/dist/report/validate.js +343 -0
- package/dist/report/validate.js.map +1 -0
- package/dist/standalone/run.d.ts +12 -0
- package/dist/standalone/run.d.ts.map +1 -1
- package/dist/standalone/run.js +37 -1
- package/dist/standalone/run.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,8 +9,35 @@
|
|
|
9
9
|
* 3-column diff view, approve command copy button, image zoom overlay.
|
|
10
10
|
*/
|
|
11
11
|
import type { ReportData } from './results';
|
|
12
|
+
import { snapshotAnchorId } from './anchor';
|
|
13
|
+
export { snapshotAnchorId };
|
|
14
|
+
/** A line shown at the top of the report. */
|
|
15
|
+
export interface ReportNotice {
|
|
16
|
+
text: string;
|
|
17
|
+
/** Linked after the text, in order; a link to anything but an https URL is left out. */
|
|
18
|
+
links?: Array<{
|
|
19
|
+
href: string;
|
|
20
|
+
label: string;
|
|
21
|
+
}>;
|
|
22
|
+
/** 'warning' for something the reader should weigh (a fork's results). Default 'info'. */
|
|
23
|
+
tone?: 'info' | 'warning';
|
|
24
|
+
}
|
|
25
|
+
export interface RenderOptions {
|
|
26
|
+
notices?: ReportNotice[];
|
|
27
|
+
/** Ask search engines not to index the page (a report published to a site). */
|
|
28
|
+
noindex?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Add a Content-Security-Policy that lets the page use only its own inline
|
|
31
|
+
* styles and scripts and its own images: nothing loaded from or sent to
|
|
32
|
+
* another site, no forms, no base URL. For a published report, whose data
|
|
33
|
+
* can come from a fork's CI run: defence in depth behind the escaping.
|
|
34
|
+
*/
|
|
35
|
+
csp?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/** All a report needs: its inline styles and scripts, and its images. */
|
|
38
|
+
export declare const REPORT_CSP: string;
|
|
12
39
|
/**
|
|
13
40
|
* Render a standalone HTML report from report data.
|
|
14
41
|
*/
|
|
15
|
-
export declare function renderHtml(data: ReportData): string;
|
|
42
|
+
export declare function renderHtml(data: ReportData, options?: RenderOptions): string;
|
|
16
43
|
//# sourceMappingURL=template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/report/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAqC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/report/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAqC,MAAM,WAAW,CAAC;AAU/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,yEAAyE;AACzE,eAAO,MAAM,UAAU,QAOX,CAAC;AAEb;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAqZhF"}
|
package/dist/report/template.js
CHANGED
|
@@ -10,24 +10,40 @@
|
|
|
10
10
|
* 3-column diff view, approve command copy button, image zoom overlay.
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.REPORT_CSP = exports.snapshotAnchorId = void 0;
|
|
13
14
|
exports.renderHtml = renderHtml;
|
|
14
15
|
const diff_shape_1 = require("./diff-shape");
|
|
15
16
|
const size_mismatch_1 = require("./size-mismatch");
|
|
17
|
+
const environment_1 = require("./environment");
|
|
18
|
+
const anchor_1 = require("./anchor");
|
|
19
|
+
Object.defineProperty(exports, "snapshotAnchorId", { enumerable: true, get: function () { return anchor_1.snapshotAnchorId; } });
|
|
20
|
+
/** All a report needs: its inline styles and scripts, and its images. */
|
|
21
|
+
exports.REPORT_CSP = [
|
|
22
|
+
"default-src 'none'",
|
|
23
|
+
"img-src 'self'",
|
|
24
|
+
"style-src 'unsafe-inline'",
|
|
25
|
+
"script-src 'unsafe-inline'",
|
|
26
|
+
"base-uri 'none'",
|
|
27
|
+
"form-action 'none'",
|
|
28
|
+
].join('; ');
|
|
16
29
|
/**
|
|
17
30
|
* Render a standalone HTML report from report data.
|
|
18
31
|
*/
|
|
19
|
-
function renderHtml(data) {
|
|
32
|
+
function renderHtml(data, options = {}) {
|
|
20
33
|
const { summary, snapshots, version, timestamp } = data;
|
|
21
34
|
const changed = snapshots.filter((s) => s.status === 'changed');
|
|
22
35
|
const newSnapshots = snapshots.filter((s) => s.status === 'new');
|
|
23
36
|
const passed = snapshots.filter((s) => s.status === 'passed');
|
|
24
37
|
const missing = data.missingBaselines ?? [];
|
|
38
|
+
// One line per environment change shared by two or more snapshots; a
|
|
39
|
+
// single snapshot's own verdict already says it.
|
|
40
|
+
const envGroups = (0, environment_1.environmentChangeGroups)(snapshots).filter((g) => g.snapshots.length >= 2);
|
|
25
41
|
return `<!DOCTYPE html>
|
|
26
42
|
<html lang="en">
|
|
27
43
|
<head>
|
|
28
44
|
<meta charset="UTF-8">
|
|
29
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
30
|
-
<title>TestivAI Visual Report</title>
|
|
45
|
+
${options.csp ? `<meta http-equiv="Content-Security-Policy" content="${exports.REPORT_CSP}">\n ` : ''}<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
46
|
+
${options.noindex ? '<meta name="robots" content="noindex, nofollow">\n ' : ''}<title>TestivAI Visual Report</title>
|
|
31
47
|
<style>
|
|
32
48
|
/* ── Theme tokens ─────────────────────────────────────────────────────
|
|
33
49
|
Light is the default (no attribute); html[data-theme="dark"] overrides.
|
|
@@ -126,10 +142,17 @@ function renderHtml(data) {
|
|
|
126
142
|
.section-title.new { color: var(--new); } .section-title.new::before { background: var(--new); }
|
|
127
143
|
.section-title.passed { color: var(--passed); } .section-title.passed::before { background: var(--passed); }
|
|
128
144
|
|
|
145
|
+
/* Notices at the top of a published report (run, pull request, fork) */
|
|
146
|
+
.report-notice { background: var(--info-bg); border: 1px solid var(--border-soft); border-left: 4px solid var(--info); border-radius: 10px; padding: 10px 14px; margin-bottom: 12px; font-size: 13px; }
|
|
147
|
+
.report-notice.warning { background: var(--new-bg); border-left-color: var(--new); }
|
|
148
|
+
.report-notice a { color: var(--link); }
|
|
149
|
+
|
|
129
150
|
/* Snapshot card */
|
|
130
151
|
.snapshot { background: var(--surface); border: 1px solid var(--border-soft); border-radius: 14px; padding: 20px; margin-bottom: 16px; box-shadow: var(--shadow); }
|
|
131
152
|
.snapshot-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
|
|
132
|
-
.snapshot-name { font-size: 15px; font-weight: 650; }
|
|
153
|
+
.snapshot-name { font-size: 15px; font-weight: 650; color: inherit; text-decoration: none; }
|
|
154
|
+
.snapshot-name:hover { text-decoration: underline; }
|
|
155
|
+
.snapshot:target { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
133
156
|
.snapshot-badge { padding: 3px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; text-transform: capitalize; }
|
|
134
157
|
.badge-changed { background: var(--changed-bg); color: var(--changed); }
|
|
135
158
|
.badge-new { background: var(--new-bg); color: var(--new); }
|
|
@@ -149,6 +172,10 @@ function renderHtml(data) {
|
|
|
149
172
|
/* Identical DOM and styles, but a diff concentrated in one area or large: not noise, a warning look */
|
|
150
173
|
.verdict.v-unexplained { background: var(--new-bg); color: var(--new); border: 1px solid color-mix(in srgb, var(--new) 30%, transparent); }
|
|
151
174
|
.verdict.v-style { background: var(--new-bg); color: var(--new); border: 1px solid color-mix(in srgb, var(--new) 30%, transparent); }
|
|
175
|
+
.verdict.v-drift { background: var(--info-bg); color: var(--info); border: 1px solid color-mix(in srgb, var(--info) 30%, transparent); }
|
|
176
|
+
.env-notice { background: var(--info-bg); border: 1px solid color-mix(in srgb, var(--info) 30%, transparent); border-radius: 10px; padding: 14px 16px; margin-bottom: 24px; font-size: 13px; color: var(--info); }
|
|
177
|
+
.env-notice code { background: var(--code-bg); border-radius: 3px; padding: 1px 5px; font-size: 12px; }
|
|
178
|
+
.env-hint { font-size: 12px; color: var(--muted); margin-top: 6px; }
|
|
152
179
|
.verdict.v-size { background: var(--changed-bg); color: var(--changed); border: 1px solid color-mix(in srgb, var(--changed) 30%, transparent); }
|
|
153
180
|
.verdict.v-structural { background: var(--changed-bg); color: var(--changed); border: 1px solid color-mix(in srgb, var(--changed) 30%, transparent); }
|
|
154
181
|
.verdict.v-shift { background: var(--info-bg); color: var(--info); border: 1px solid color-mix(in srgb, var(--info) 30%, transparent); }
|
|
@@ -230,7 +257,7 @@ function renderHtml(data) {
|
|
|
230
257
|
.sidebar.open { transform: translateX(0); }
|
|
231
258
|
.sidebar-backdrop.active { display: block; }
|
|
232
259
|
.main { margin-left: 0; padding: 16px; max-width: 100%; }
|
|
233
|
-
.section { scroll-margin-top: 64px; }
|
|
260
|
+
.section, .snapshot { scroll-margin-top: 64px; }
|
|
234
261
|
.snapshot { padding: 14px; }
|
|
235
262
|
.snapshot-header { flex-wrap: wrap; gap: 6px; }
|
|
236
263
|
.diff-view, .diff-view.two-col { grid-template-columns: 1fr; }
|
|
@@ -288,6 +315,14 @@ function renderHtml(data) {
|
|
|
288
315
|
</aside>
|
|
289
316
|
|
|
290
317
|
<main class="main">
|
|
318
|
+
${renderNotices(options.notices ?? [])}
|
|
319
|
+
${envGroups
|
|
320
|
+
.map((g) => `
|
|
321
|
+
<div class="env-notice">
|
|
322
|
+
<div>${escapeHtml((0, environment_1.environmentChangeLine)(g))}</div>
|
|
323
|
+
${g.snapshots.slice(0, 20).map((n) => `<code>${escapeHtml(n)}</code>`).join(' ')}${g.snapshots.length > 20 ? ' …' : ''}
|
|
324
|
+
</div>`)
|
|
325
|
+
.join('')}
|
|
291
326
|
${missing.length > 0 ? `
|
|
292
327
|
<div class="missing-notice">
|
|
293
328
|
<div class="m-title">${missing.length} baseline${missing.length === 1 ? '' : 's'} received no capture this run</div>
|
|
@@ -396,6 +431,28 @@ function renderHtml(data) {
|
|
|
396
431
|
</body>
|
|
397
432
|
</html>`;
|
|
398
433
|
}
|
|
434
|
+
/** The notices at the top of the report; a link only to an https page. */
|
|
435
|
+
function renderNotices(notices) {
|
|
436
|
+
return notices
|
|
437
|
+
.map((n) => {
|
|
438
|
+
const links = (n.links ?? [])
|
|
439
|
+
.filter((l) => isHttpsUrl(l.href))
|
|
440
|
+
.map((l) => ` · <a href="${escapeHtml(l.href)}">${escapeHtml(l.label)}</a>`)
|
|
441
|
+
.join('');
|
|
442
|
+
return `<div class="report-notice ${n.tone === 'warning' ? 'warning' : 'info'}">${escapeHtml(n.text)}${links}</div>`;
|
|
443
|
+
})
|
|
444
|
+
.join('\n ');
|
|
445
|
+
}
|
|
446
|
+
function isHttpsUrl(value) {
|
|
447
|
+
if (/[\s"'<>`\\]/.test(value))
|
|
448
|
+
return false;
|
|
449
|
+
try {
|
|
450
|
+
return new URL(value).protocol === 'https:';
|
|
451
|
+
}
|
|
452
|
+
catch {
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
399
456
|
function renderSnapshot(snapshot) {
|
|
400
457
|
const badgeClass = snapshot.status === 'changed' ? 'badge-changed' : snapshot.status === 'new' ? 'badge-new' : 'badge-passed';
|
|
401
458
|
const hasBaseline = !!snapshot.baselinePath;
|
|
@@ -408,18 +465,19 @@ function renderSnapshot(snapshot) {
|
|
|
408
465
|
gridClass += ' one-col';
|
|
409
466
|
else
|
|
410
467
|
gridClass += ' two-col';
|
|
468
|
+
const anchor = (0, anchor_1.snapshotAnchorId)(snapshot.name);
|
|
411
469
|
return `
|
|
412
|
-
<div class="snapshot">
|
|
470
|
+
<div class="snapshot" id="${anchor}">
|
|
413
471
|
<div class="snapshot-header">
|
|
414
|
-
<
|
|
472
|
+
<a class="snapshot-name" href="#${anchor}" title="Link to this snapshot">${escapeHtml(snapshot.name)}</a>
|
|
415
473
|
<span class="snapshot-badge ${badgeClass}">${snapshot.status}</span>
|
|
416
474
|
</div>
|
|
417
475
|
${renderStats(snapshot)}
|
|
418
476
|
${renderAnalysis(snapshot)}
|
|
419
477
|
<div class="${gridClass}">
|
|
420
|
-
${hasBaseline ? `<div class="diff-col"><label>Baseline</label><img src="${snapshot.baselinePath}" alt="Baseline"></div>` : ''}
|
|
421
|
-
${hasDiff ? `<div class="diff-col"><label>Diff <span class="heat-legend" title="Heatmap: color = difference magnitude">subtle <span class="heat-bar"></span> strong</span></label><img src="${snapshot.diffPath}" alt="Diff heatmap"></div>` : ''}
|
|
422
|
-
${hasCurrent ? `<div class="diff-col"><label>Current</label><img src="${snapshot.currentPath}" alt="Current"></div>` : ''}
|
|
478
|
+
${hasBaseline ? `<div class="diff-col"><label>Baseline</label><img src="${escapeHtml(snapshot.baselinePath ?? '')}" alt="Baseline"></div>` : ''}
|
|
479
|
+
${hasDiff ? `<div class="diff-col"><label>Diff <span class="heat-legend" title="Heatmap: color = difference magnitude">subtle <span class="heat-bar"></span> strong</span></label><img src="${escapeHtml(snapshot.diffPath ?? '')}" alt="Diff heatmap"></div>` : ''}
|
|
480
|
+
${hasCurrent ? `<div class="diff-col"><label>Current</label><img src="${escapeHtml(snapshot.currentPath ?? '')}" alt="Current"></div>` : ''}
|
|
423
481
|
</div>
|
|
424
482
|
${snapshot.status === 'changed' || snapshot.status === 'new' ? `
|
|
425
483
|
<div class="approve-cmd">
|
|
@@ -475,7 +533,7 @@ function autoPassNote(snapshot) {
|
|
|
475
533
|
*/
|
|
476
534
|
function renderAnalysis(snapshot) {
|
|
477
535
|
const verdict = renderVerdict(snapshot);
|
|
478
|
-
const layers = [renderDomHint(snapshot), renderRegions(snapshot), renderMasks(snapshot)].filter(Boolean).join('');
|
|
536
|
+
const layers = [renderDomHint(snapshot), renderEnvironment(snapshot), renderRegions(snapshot), renderMasks(snapshot)].filter(Boolean).join('');
|
|
479
537
|
if (!verdict && !layers)
|
|
480
538
|
return '';
|
|
481
539
|
return `
|
|
@@ -503,6 +561,35 @@ function renderAnalysis(snapshot) {
|
|
|
503
561
|
* warning too: a bad capture, or a change the style check does not cover.
|
|
504
562
|
*/
|
|
505
563
|
function renderVerdict(snapshot) {
|
|
564
|
+
if (snapshot.status === 'new')
|
|
565
|
+
return baseVerdict(snapshot);
|
|
566
|
+
const change = (0, environment_1.snapshotEnvironmentChange)(snapshot);
|
|
567
|
+
if (change && snapshot.environment?.policy === 'strict') {
|
|
568
|
+
return `<div class="verdict v-size"><span>Environment changed (strict policy) — ${escapeHtml(change)} since the baseline. environmentPolicy is "strict", so this snapshot is changed whatever its pixels say (${snapshot.diffPercent.toFixed(2)}% differ). Approve it to re-baseline in this environment, or capture it in the baseline's.</span></div>`;
|
|
569
|
+
}
|
|
570
|
+
const env = snapshot.environment;
|
|
571
|
+
if (change && env?.baseline && env.candidate && snapshot.sizeMismatch && env.renderingDelta.includes('adapter.captureMethod')) {
|
|
572
|
+
const from = (0, environment_1.describeCaptureMethod)(env.baseline.adapter.captureMethod);
|
|
573
|
+
const to = (0, environment_1.describeCaptureMethod)(env.candidate.adapter.captureMethod);
|
|
574
|
+
const dom = snapshot.dom?.changed && snapshot.dom.summary ? ` The DOM also changed (${escapeHtml(summarizeDom(snapshot.dom.summary))}): review that on its own.` : '';
|
|
575
|
+
return `<div class="verdict v-drift"><span>Capture method changed — ${escapeHtml(from)} → ${escapeHtml(to)} since the baseline (${escapeHtml((0, size_mismatch_1.formatSizes)(snapshot.sizeMismatch))}): the size change comes from how the screenshot was taken, not from the page. Re-baseline with this capture method, or capture the way the baseline was.${dom}</span></div>`;
|
|
576
|
+
}
|
|
577
|
+
if (change && (0, environment_1.isRenderingDrift)(snapshot)) {
|
|
578
|
+
const size = snapshot.sizeMismatch ? `; that also explains the size change (${escapeHtml((0, size_mismatch_1.formatSizeMismatch)(snapshot.sizeMismatch))})` : '';
|
|
579
|
+
const next = snapshot.status === 'changed'
|
|
580
|
+
? 'Re-baseline once the images are confirmed to match apart from rendering.'
|
|
581
|
+
: `Auto-passed by the '${escapeHtml(snapshot.autoPassed ?? '')}' criterion; re-baseline in this environment so the tolerance keeps measuring the page, not the machine.`;
|
|
582
|
+
return `<div class="verdict v-drift"><span>Rendering drift — the environment changed since the baseline (${escapeHtml(change)}), and the DOM and computed styles are identical: the machine changed, not the page${size}. ${next}</span></div>`;
|
|
583
|
+
}
|
|
584
|
+
const base = baseVerdict(snapshot);
|
|
585
|
+
if (change && base && (snapshot.status === 'changed' || snapshot.autoPassed)) {
|
|
586
|
+
const note = ` The environment also changed since the baseline (${escapeHtml(change)}), which can add rendering differences of its own.`;
|
|
587
|
+
return base.replace(/<\/span><\/div>$/, `${note}</span></div>`);
|
|
588
|
+
}
|
|
589
|
+
return base;
|
|
590
|
+
}
|
|
591
|
+
/** The verdict without the environment: what the page-side layers say. */
|
|
592
|
+
function baseVerdict(snapshot) {
|
|
506
593
|
// A DOM change never decides the status: the pixels do. A pass whose DOM
|
|
507
594
|
// differs is reported as information, with nothing to approve.
|
|
508
595
|
if (snapshot.status === 'passed' && !snapshot.autoPassed) {
|
|
@@ -536,7 +623,7 @@ function renderVerdict(snapshot) {
|
|
|
536
623
|
// Auto-passed within a tolerance although the DOM changed: say so, and
|
|
537
624
|
// never ask for an approval there is nothing to give.
|
|
538
625
|
if (snapshot.autoPassed && snapshot.dom?.changed && snapshot.dom.summary) {
|
|
539
|
-
return `<div class="verdict v-pass"><span>Auto-passed via the <code>${snapshot.autoPassed}</code> criterion — within the configured tolerance, but the DOM differs (${escapeHtml(summarizeDom(snapshot.dom.summary))}). Nothing to approve; check the tolerance is meant to cover a markup change.</span></div>`;
|
|
626
|
+
return `<div class="verdict v-pass"><span>Auto-passed via the <code>${escapeHtml(snapshot.autoPassed)}</code> criterion — within the configured tolerance, but the DOM differs (${escapeHtml(summarizeDom(snapshot.dom.summary))}). Nothing to approve; check the tolerance is meant to cover a markup change.</span></div>`;
|
|
540
627
|
}
|
|
541
628
|
// Style-only only when the DOM is unchanged: a class or style attribute
|
|
542
629
|
// change restyles elements too, and that is a structural change below.
|
|
@@ -569,7 +656,7 @@ function renderVerdict(snapshot) {
|
|
|
569
656
|
return `<div class="verdict v-unverified"><span>Styles not compared — could be render noise or a stylesheet-only change: pixels differ and the DOM is identical, but computed styles were not compared (no comparable style digests on both sides), so a stylesheet-only change is not ruled out. Compare the images before approving.</span></div>`;
|
|
570
657
|
}
|
|
571
658
|
if (snapshot.autoPassed) {
|
|
572
|
-
return `<div class="verdict v-pass"><span>Auto-passed via the <code>${snapshot.autoPassed}</code> criterion — reported for transparency, no action needed.</span></div>`;
|
|
659
|
+
return `<div class="verdict v-pass"><span>Auto-passed via the <code>${escapeHtml(snapshot.autoPassed)}</code> criterion — reported for transparency, no action needed.</span></div>`;
|
|
573
660
|
}
|
|
574
661
|
return '';
|
|
575
662
|
}
|
|
@@ -631,6 +718,13 @@ function renderDomHint(snapshot) {
|
|
|
631
718
|
}
|
|
632
719
|
if (snapshot.dom.noiseHint) {
|
|
633
720
|
if (snapshot.dom.styleCheck === 'match') {
|
|
721
|
+
if ((0, environment_1.isRenderingDrift)(snapshot)) {
|
|
722
|
+
return `
|
|
723
|
+
<div class="dom-hint noise" title="DOM tree and computed styles are identical, and the environment the page was captured in changed since the baseline.">
|
|
724
|
+
<span class="label">DOM unchanged</span>
|
|
725
|
+
<span class="summary">— styles verified unchanged; the environment changed since the baseline, so the pixel diff is rendering drift.</span>
|
|
726
|
+
</div>`;
|
|
727
|
+
}
|
|
634
728
|
const shape = (0, diff_shape_1.diffShape)(snapshot);
|
|
635
729
|
if (shape.kind === 'concentrated') {
|
|
636
730
|
return `
|
|
@@ -683,6 +777,24 @@ function renderDomHint(snapshot) {
|
|
|
683
777
|
<span class="summary">— ${escapeHtml(parts.join(', ') || 'structural difference')}.${alsoRestyled}</span>
|
|
684
778
|
</div>`;
|
|
685
779
|
}
|
|
780
|
+
/**
|
|
781
|
+
* The environment layer: every field that changed since the baseline,
|
|
782
|
+
* rendering changes first and context after. Absent when nothing changed or
|
|
783
|
+
* a side recorded no environment.
|
|
784
|
+
*/
|
|
785
|
+
function renderEnvironment(snapshot) {
|
|
786
|
+
const env = snapshot.environment;
|
|
787
|
+
if (!env || env.delta.length === 0 || !env.baseline || !env.candidate)
|
|
788
|
+
return '';
|
|
789
|
+
const context = env.delta.filter((f) => !env.renderingDelta.includes(f));
|
|
790
|
+
const parts = [];
|
|
791
|
+
if (env.renderingDelta.length > 0)
|
|
792
|
+
parts.push((0, environment_1.describeEnvironmentChange)(env.baseline, env.candidate, env.renderingDelta));
|
|
793
|
+
if (context.length > 0)
|
|
794
|
+
parts.push(`context: ${(0, environment_1.describeEnvironmentChange)(env.baseline, env.candidate, context)}`);
|
|
795
|
+
return `
|
|
796
|
+
<div class="env-hint">Environment changed since the baseline — ${escapeHtml(parts.join(' · '))}</div>`;
|
|
797
|
+
}
|
|
686
798
|
/**
|
|
687
799
|
* Region chip list: "N changed regions" with coordinates. Clicking a chip
|
|
688
800
|
* zooms the diff image so the reviewer can inspect that area.
|
|
@@ -707,7 +819,7 @@ function renderRegions(snapshot) {
|
|
|
707
819
|
return `${selector} changed (${r.width}×${r.height} @ ${r.x}, ${r.y})`;
|
|
708
820
|
};
|
|
709
821
|
const chips = regions
|
|
710
|
-
.map((r, i) => `<li><a href="#" class="region-chip${r.classification === 'shift' ? ' region-shift' : ''}" data-diff="${snapshot.diffPath ?? ''}" title="${r.diffPixels} changed pixels${r.elements?.[0] ? ' — ' + escapeHtml(r.elements[0].selector) : ''}">#${i + 1} · ${describe(r)}</a></li>`)
|
|
822
|
+
.map((r, i) => `<li><a href="#" class="region-chip${r.classification === 'shift' ? ' region-shift' : ''}" data-diff="${escapeHtml(snapshot.diffPath ?? '')}" title="${r.diffPixels} changed pixels${r.elements?.[0] ? ' — ' + escapeHtml(r.elements[0].selector) : ''}">#${i + 1} · ${describe(r)}</a></li>`)
|
|
711
823
|
.join('');
|
|
712
824
|
const shifted = regions.filter((r) => r.classification === 'shift').length;
|
|
713
825
|
const title = shifted > 0
|
|
@@ -739,7 +851,7 @@ function renderMasks(snapshot) {
|
|
|
739
851
|
: m.source.type === 'edge'
|
|
740
852
|
? `edge <code>${escapeHtml(JSON.stringify(m.source.spec))}</code>`
|
|
741
853
|
: `region <code>${escapeHtml(JSON.stringify(m.source.spec))}</code>`;
|
|
742
|
-
return `${src} → ${m.width}×${m.height} @ (${m.x}, ${m.y}) <em>(${m.source.origin})</em>`;
|
|
854
|
+
return `${src} → ${m.width}×${m.height} @ (${m.x}, ${m.y}) <em>(${escapeHtml(m.source.origin)})</em>`;
|
|
743
855
|
};
|
|
744
856
|
const maskBlock = masks.length > 0
|
|
745
857
|
? `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/report/template.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/report/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read a results.json you did not produce.
|
|
3
|
+
*
|
|
4
|
+
* A published report is rebuilt from results.json, and that file can come
|
|
5
|
+
* from a CI run the reader does not control (a fork's pull request). The
|
|
6
|
+
* template escapes every string it shows; it does not check that numbers
|
|
7
|
+
* are numbers, that enums hold known values, or that the data has the
|
|
8
|
+
* expected shape. This does, for every field the report reads:
|
|
9
|
+
*
|
|
10
|
+
* - each field must have its type (a finite number, text, a known value),
|
|
11
|
+
* within size limits, or the whole file is rejected with the field's path;
|
|
12
|
+
* - fields it does not know are dropped, at every level;
|
|
13
|
+
* - image paths (`baselinePath`, `currentPath`, `diffPath`) are never taken
|
|
14
|
+
* from the file: the caller adds them for the images it actually has.
|
|
15
|
+
*
|
|
16
|
+
* Its own module with no Node dependencies, so the GitHub Action can bundle
|
|
17
|
+
* it without the rest of the report code.
|
|
18
|
+
*/
|
|
19
|
+
import type { ReportData } from './results';
|
|
20
|
+
/** The results.json major version this reads: the major of RESULTS_SCHEMA_VERSION (generator.ts). */
|
|
21
|
+
export declare const SUPPORTED_SCHEMA_MAJOR = 2;
|
|
22
|
+
/** Size limits; a file over one is rejected. Far above what a real suite writes. */
|
|
23
|
+
export declare const REPORT_DATA_LIMITS: {
|
|
24
|
+
readonly snapshots: 5000;
|
|
25
|
+
readonly nameLength: 300;
|
|
26
|
+
readonly textLength: 2000;
|
|
27
|
+
readonly regions: 1000;
|
|
28
|
+
readonly elementsPerRegion: 10;
|
|
29
|
+
readonly styleElements: 200;
|
|
30
|
+
readonly masks: 500;
|
|
31
|
+
readonly maskWarnings: 200;
|
|
32
|
+
readonly maskSpecKeys: 50;
|
|
33
|
+
readonly missingBaselines: 5000;
|
|
34
|
+
readonly environmentKeys: 20;
|
|
35
|
+
readonly environmentValueLength: 200;
|
|
36
|
+
readonly environmentFields: 100;
|
|
37
|
+
};
|
|
38
|
+
export type ParsedReportData = {
|
|
39
|
+
ok: true;
|
|
40
|
+
data: ReportData;
|
|
41
|
+
} | {
|
|
42
|
+
ok: false;
|
|
43
|
+
reason: string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Check a parsed results.json and return only the typed data the report
|
|
47
|
+
* needs, or the reason it cannot be shown.
|
|
48
|
+
*/
|
|
49
|
+
export declare function parseReportData(json: unknown): ParsedReportData;
|
|
50
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/report/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAyF,MAAM,WAAW,CAAC;AAEnI,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,oFAAoF;AACpF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAcrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAO/D"}
|