tuffgal 0.1.0-alpha.5 → 0.1.0-alpha.6
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 +22 -7
- package/README.md +1 -1
- package/dist/cli.js +15 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/reporter/assets/report.css +100 -18
- package/dist/reporter/assets/report.js +195 -30
- package/dist/reporter/template.js +38 -1
- package/dist/reporter/template.js.map +1 -1
- package/dist/runner/approve.d.ts +9 -1
- package/dist/runner/approve.d.ts.map +1 -1
- package/dist/runner/approve.js +7 -3
- package/dist/runner/approve.js.map +1 -1
- package/dist/runner/bridges/devServers.js.map +1 -1
- package/dist/runner/run.d.ts.map +1 -1
- package/dist/runner/run.js +34 -1
- package/dist/runner/run.js.map +1 -1
- package/dist/runner/runStory.js +1 -1
- package/dist/runner/runStory.js.map +1 -1
- package/dist/schema/story.d.ts +4 -0
- package/dist/schema/story.d.ts.map +1 -1
- package/dist/schema/story.js +13 -0
- package/dist/schema/story.js.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,16 +8,29 @@ this project uses [Pride Versioning](https://pridever.org) → `PROUD.DEFAULT.SH
|
|
|
8
8
|
|
|
9
9
|
_Nothing just yet_
|
|
10
10
|
|
|
11
|
+
## [0.1.0-alpha.6] — 2026-06-11
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Add per-story overrides for browser `viewport` optional config field
|
|
16
|
+
- Add `tuffgal approve --new-only` flag to limit baselines to new stories
|
|
17
|
+
- Allow reports to be filtered by passed, changed, or failed
|
|
18
|
+
- Allow reports to expand/contract all screenshots
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Edit `tuffgal run` output to group changed, failed at end w/ report link
|
|
23
|
+
- Skip npm release if no version bump
|
|
24
|
+
|
|
11
25
|
## [0.1.0-alpha.5] — 2026-06-11
|
|
12
26
|
|
|
13
27
|
### Added
|
|
14
28
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
`networkidle` from settling.
|
|
29
|
+
`navigate` step accepts an optional `waitUntil` field (`'load' |
|
|
30
|
+
'domcontentloaded' | 'networkidle' | 'commit'`) that overrides Playwright's
|
|
31
|
+
`page.goto` ready signal on a per-step basis. Defaults to `'networkidle'`.
|
|
32
|
+
Use `'domcontentloaded'` for dev-mode pages with long-tail external fetches
|
|
33
|
+
that prevent `networkidle` from settling.
|
|
21
34
|
|
|
22
35
|
## [0.1.0-alpha.4] — 2026-06-06
|
|
23
36
|
|
|
@@ -70,7 +83,9 @@ styling or interactivity.
|
|
|
70
83
|
Initial public alpha. Tuffgal extracted from [Linklater](https://github.com/nschneble/linklater)'s
|
|
71
84
|
in-tree visual testing workspace.
|
|
72
85
|
|
|
73
|
-
[Unreleased]: https://github.com/nschneble/tuffgal/compare/v0.1.0-alpha.
|
|
86
|
+
[Unreleased]: https://github.com/nschneble/tuffgal/compare/v0.1.0-alpha.6...HEAD
|
|
87
|
+
[0.1.0-alpha.6]: https://github.com/nschneble/tuffgal/releases/tag/v0.1.0-alpha.6
|
|
88
|
+
[0.1.0-alpha.5]: https://github.com/nschneble/tuffgal/releases/tag/v0.1.0-alpha.5
|
|
74
89
|
[0.1.0-alpha.4]: https://github.com/nschneble/tuffgal/releases/tag/v0.1.0-alpha.4
|
|
75
90
|
[0.1.0-alpha.3]: https://github.com/nschneble/tuffgal/releases/tag/v0.1.0-alpha.3
|
|
76
91
|
[0.1.0-alpha.2]: https://github.com/nschneble/tuffgal/releases/tag/v0.1.0-alpha.2
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ JSON-driven visual regression testing for web apps.
|
|
|
6
6
|
|
|
7
7
|
<img src="tuffgal.png" alt="Tuffgal" />
|
|
8
8
|
|
|
9
|
-
**Status:** Pre-1.0. Published on npm as `tuffgal@0.1.0-alpha.
|
|
9
|
+
**Status:** Pre-1.0. Published on npm as `tuffgal@0.1.0-alpha.6` with
|
|
10
10
|
provenance. [Linklater](https://github.com/nschneble/linklater) is the
|
|
11
11
|
pilot consumer.
|
|
12
12
|
|
package/dist/cli.js
CHANGED
|
@@ -14,6 +14,7 @@ function parseArguments(argv) {
|
|
|
14
14
|
headed: false,
|
|
15
15
|
manageServers: false,
|
|
16
16
|
coverage: false,
|
|
17
|
+
newOnly: false,
|
|
17
18
|
};
|
|
18
19
|
for (let index = 0; index < rest.length; index += 1) {
|
|
19
20
|
const arg = rest[index];
|
|
@@ -42,6 +43,9 @@ function parseArguments(argv) {
|
|
|
42
43
|
else if (arg === '--coverage') {
|
|
43
44
|
parsed.coverage = true;
|
|
44
45
|
}
|
|
46
|
+
else if (arg === '--new-only') {
|
|
47
|
+
parsed.newOnly = true;
|
|
48
|
+
}
|
|
45
49
|
else if (arg === '--healthcheck-interval') {
|
|
46
50
|
parsed.healthcheckIntervalMs = Number(rest[index + 1]);
|
|
47
51
|
index += 1;
|
|
@@ -92,6 +96,9 @@ function printHelp() {
|
|
|
92
96
|
' --manage-servers Spawn devServers.command, wait, run, then kill it.',
|
|
93
97
|
' --coverage Capture V8 JS + CSS coverage and emit a monocart report.',
|
|
94
98
|
'',
|
|
99
|
+
'Approve options:',
|
|
100
|
+
' --new-only Only promote new baselines; skip changed.',
|
|
101
|
+
'',
|
|
95
102
|
'Supervise options:',
|
|
96
103
|
' --healthcheck-interval N Probe interval in ms (default 30_000).',
|
|
97
104
|
' --idle-limit N Ms with no `tuffgal run` heartbeat before exit (default 600_000).',
|
|
@@ -101,6 +108,13 @@ function printHelp() {
|
|
|
101
108
|
}
|
|
102
109
|
async function main() {
|
|
103
110
|
const args = parseArguments(process.argv.slice(2));
|
|
111
|
+
if (args.newOnly &&
|
|
112
|
+
(args.command === 'run' ||
|
|
113
|
+
args.command === 'supervise' ||
|
|
114
|
+
args.command === 'init')) {
|
|
115
|
+
process.stderr.write('tuffgal error: --new-only is only valid with the `approve` subcommand\n');
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
104
118
|
if (args.command === 'help') {
|
|
105
119
|
printHelp();
|
|
106
120
|
return;
|
|
@@ -118,12 +132,12 @@ async function main() {
|
|
|
118
132
|
manageServers: args.manageServers,
|
|
119
133
|
coverage: args.coverage,
|
|
120
134
|
});
|
|
121
|
-
process.stdout.write(`\nTotals: ${result.totals.passed} pass · ${result.totals.changed} changed · ${result.totals.failed} failed\n`);
|
|
122
135
|
process.exit(result.totals.failed > 0 ? 1 : 0);
|
|
123
136
|
}
|
|
124
137
|
if (args.command === 'approve') {
|
|
125
138
|
const summary = await approveAll(config, {
|
|
126
139
|
storyFilter: args.storyFilter,
|
|
140
|
+
newOnly: args.newOnly,
|
|
127
141
|
});
|
|
128
142
|
process.stdout.write(`\nApproved ${summary.approved} baselines; skipped ${summary.skipped} actions.\n`);
|
|
129
143
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAiB1E,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAkB,CAAC;YAC5C,CAAC,CAAE,OAAmB;YACtB,CAAC,CAAC,MAAM;QACV,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACrC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YACtC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,wBAAwB,EAAE,CAAC;YAC5C,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACvD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,qBAAqB,GAAG,MAAM,CACnC,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAC5C,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YACnC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YACpC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,oCAAoC;QACpC,EAAE;QACF,WAAW;QACX,+EAA+E;QAC/E,uEAAuE;QACvE,8EAA8E;QAC9E,2EAA2E;QAC3E,gFAAgF;QAChF,0CAA0C;QAC1C,EAAE;QACF,UAAU;QACV,iFAAiF;QACjF,8DAA8D;QAC9D,sFAAsF;QACtF,iFAAiF;QACjF,uFAAuF;QACvF,EAAE;QACF,kBAAkB;QAClB,wEAAwE;QACxE,EAAE;QACF,oBAAoB;QACpB,qEAAqE;QACrE,gGAAgG;QAChG,wEAAwE;QACxE,+EAA+E;KAChF,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CACpB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IACE,IAAI,CAAC,OAAO;QACZ,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK;YACrB,IAAI,CAAC,OAAO,KAAK,WAAW;YAC5B,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,EAC1B,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yEAAyE,CAC1E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5B,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAc,OAAO,CAAC,QAAQ,uBAAuB,OAAO,CAAC,OAAO,aAAa,CAClF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,SAAS,CAAC,MAAM,EAAE;YACtB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC7E,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAuEA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAuEA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,YAAY,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEhE,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDvB,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;CACpB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;CAGxB,CAAC;AAMF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAExB,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;QACrC,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,sBAAsB,GAAG,2BAA2B;gBAC9D,+CAA+C,CAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAClD,MAAM,SAAS,CAAC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,YAAY,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEhE,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDvB,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;CACpB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;CAGxB,CAAC;AAMF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAExB,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;QACrC,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,sBAAsB,GAAG,2BAA2B;gBAC9D,+CAA+C,CAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAClD,MAAM,SAAS,CAAC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,SAAS,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,mBAAmB,IAAI,CAC9D,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,sBAAsB,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACzC,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,EAAE;QACF,qCAAqC;QACrC,0DAA0D;QAC1D,sDAAsD;QACtD,qDAAqD;QACrD,kDAAkD;QAClD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -198,6 +198,106 @@ h2 {
|
|
|
198
198
|
color: var(--text-subtle);
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
+
/* Chip: shared inline-flex pill used by toolbar buttons and radio-driven
|
|
202
|
+
labels. The `--toggle` modifier adds the radio-checked / focus-visible
|
|
203
|
+
accent treatment that buttons don't want. */
|
|
204
|
+
|
|
205
|
+
.chip {
|
|
206
|
+
display: inline-flex;
|
|
207
|
+
align-items: center;
|
|
208
|
+
padding: 0.2rem 0.6rem;
|
|
209
|
+
border: 1px solid var(--border-bright);
|
|
210
|
+
cursor: pointer;
|
|
211
|
+
font-size: 0.8125rem;
|
|
212
|
+
color: var(--text-muted);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.chip--toggle:has(input:checked) {
|
|
216
|
+
background: var(--bg-elevated);
|
|
217
|
+
color: var(--text);
|
|
218
|
+
border-color: var(--accent);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.chip--toggle:has(input:focus-visible) {
|
|
222
|
+
outline: 2px solid var(--accent);
|
|
223
|
+
outline-offset: 1px;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/* Stories toolbar (status filter) */
|
|
227
|
+
|
|
228
|
+
.stories-toolbar {
|
|
229
|
+
display: flex;
|
|
230
|
+
flex-wrap: wrap;
|
|
231
|
+
align-items: center;
|
|
232
|
+
gap: 0.75rem 1rem;
|
|
233
|
+
margin: 0 0 0.75rem;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.story-filter {
|
|
237
|
+
display: flex;
|
|
238
|
+
flex-wrap: wrap;
|
|
239
|
+
align-items: center;
|
|
240
|
+
gap: 0.5rem;
|
|
241
|
+
margin: 0;
|
|
242
|
+
padding: 0;
|
|
243
|
+
border: 0;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.story-filter legend {
|
|
247
|
+
padding: 0 0.5rem 0 0;
|
|
248
|
+
color: var(--text-muted);
|
|
249
|
+
font-size: 0.75rem;
|
|
250
|
+
letter-spacing: 0.05em;
|
|
251
|
+
text-transform: uppercase;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.story-filter-label input {
|
|
255
|
+
position: absolute;
|
|
256
|
+
opacity: 0;
|
|
257
|
+
pointer-events: none;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.story-bulk-toggle {
|
|
261
|
+
display: flex;
|
|
262
|
+
flex-wrap: wrap;
|
|
263
|
+
gap: 0.25rem;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.story-bulk-toggle-button {
|
|
267
|
+
background: transparent;
|
|
268
|
+
/* `font: inherit` resets font-size, so re-assert the chip's 0.8125rem
|
|
269
|
+
here after the shorthand to keep the visual size consistent. */
|
|
270
|
+
font: inherit;
|
|
271
|
+
font-size: 0.8125rem;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.story-bulk-toggle-button:hover {
|
|
275
|
+
color: var(--text);
|
|
276
|
+
border-color: var(--accent);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.story-bulk-toggle-button:focus-visible {
|
|
280
|
+
outline: 2px solid var(--accent);
|
|
281
|
+
outline-offset: 1px;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.story-filter-status {
|
|
285
|
+
margin: 0;
|
|
286
|
+
color: var(--text-subtle);
|
|
287
|
+
font-size: 0.8125rem;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.stories-empty {
|
|
291
|
+
margin: 0.5rem 0 0;
|
|
292
|
+
padding: 1rem;
|
|
293
|
+
background: var(--bg-elevated);
|
|
294
|
+
border: 1px solid var(--border);
|
|
295
|
+
color: var(--text-subtle);
|
|
296
|
+
font-family: var(--font-sans);
|
|
297
|
+
font-size: 0.875rem;
|
|
298
|
+
text-align: center;
|
|
299
|
+
}
|
|
300
|
+
|
|
201
301
|
/* Stories tree */
|
|
202
302
|
|
|
203
303
|
.stories {
|
|
@@ -385,25 +485,7 @@ h2 {
|
|
|
385
485
|
}
|
|
386
486
|
|
|
387
487
|
.shot-radio-label {
|
|
388
|
-
display: inline-flex;
|
|
389
|
-
align-items: center;
|
|
390
488
|
gap: 0.35rem;
|
|
391
|
-
padding: 0.2rem 0.6rem;
|
|
392
|
-
border: 1px solid var(--border-bright);
|
|
393
|
-
cursor: pointer;
|
|
394
|
-
font-size: 0.8125rem;
|
|
395
|
-
color: var(--text-muted);
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
.shot-radio-label:has(input:checked) {
|
|
399
|
-
background: var(--bg-elevated);
|
|
400
|
-
color: var(--text);
|
|
401
|
-
border-color: var(--accent);
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
.shot-radio-label:has(input:focus-visible) {
|
|
405
|
-
outline: 2px solid var(--accent);
|
|
406
|
-
outline-offset: 1px;
|
|
407
489
|
}
|
|
408
490
|
|
|
409
491
|
.shot-radio-label:has(input:disabled) {
|
|
@@ -1,45 +1,210 @@
|
|
|
1
|
-
// Reveals the matching <div.shot-panel> for the radio the user picks. The
|
|
2
|
-
// radio group already handles keyboard navigation natively (arrow keys move
|
|
3
|
-
// the selection across the visible labels); this script just translates the
|
|
4
|
-
// `change` event into a panel-visibility toggle so we stay framework-free.
|
|
5
1
|
(function () {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
// Shared writer for the `.story-filter-status` polite live region. Both the
|
|
3
|
+
// filter (debounced) and the bulk-toggle (synchronous) write through this
|
|
4
|
+
// helper so a fresher write always supersedes a pending stale one — the
|
|
5
|
+
// most-recent action wins. `write()` and `writeDebounced()` both implicitly
|
|
6
|
+
// cancel any in-flight debounce before scheduling, so callers cannot
|
|
7
|
+
// accidentally re-introduce the race by forgetting to clear the timer.
|
|
8
|
+
//
|
|
9
|
+
// Contract:
|
|
10
|
+
// write(msg) → cancel pending debounce, set textContent now
|
|
11
|
+
// writeDebounced(msg, ms)→ cancel pending debounce, set textContent after ms
|
|
12
|
+
//
|
|
13
|
+
// Both writers use `textContent` (not `innerHTML`). If the new message
|
|
14
|
+
// equals the current `textContent`, some screen readers will not re-announce
|
|
15
|
+
// — this is a documented platform limitation, not worked around here. A
|
|
16
|
+
// future caller that needs forced re-announcement would add a separate
|
|
17
|
+
// `forceWrite()`; out of scope for this helper.
|
|
18
|
+
//
|
|
19
|
+
// If `.story-filter-status` is missing from the DOM, every method is a
|
|
20
|
+
// silent no-op (matches the prior early-return pattern at each call site).
|
|
21
|
+
function createStatusRegion() {
|
|
22
|
+
var element = document.querySelector('.story-filter-status');
|
|
23
|
+
var timer = null;
|
|
24
|
+
|
|
25
|
+
function cancel() {
|
|
26
|
+
if (timer !== null) {
|
|
27
|
+
clearTimeout(timer);
|
|
28
|
+
timer = null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function write(msg) {
|
|
33
|
+
cancel();
|
|
34
|
+
if (!element) return;
|
|
35
|
+
element.textContent = msg;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function writeDebounced(msg, ms) {
|
|
39
|
+
cancel();
|
|
40
|
+
if (!element) return;
|
|
41
|
+
timer = setTimeout(function () {
|
|
42
|
+
element.textContent = msg;
|
|
43
|
+
timer = null;
|
|
44
|
+
}, ms);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
write: write,
|
|
49
|
+
writeDebounced: writeDebounced,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
var statusRegion = createStatusRegion();
|
|
54
|
+
|
|
55
|
+
// Reveals the matching <div.shot-panel> for the radio the user picks. The
|
|
56
|
+
// radio group already handles keyboard navigation natively (arrow keys move
|
|
57
|
+
// the selection across the visible labels); this script just translates the
|
|
58
|
+
// `change` event into a panel-visibility toggle so we stay framework-free.
|
|
59
|
+
(function () {
|
|
60
|
+
function setupShots(container) {
|
|
61
|
+
var radios = Array.prototype.slice.call(
|
|
62
|
+
container.querySelectorAll('input[type="radio"]'),
|
|
63
|
+
);
|
|
64
|
+
var panels = Array.prototype.slice.call(
|
|
65
|
+
container.parentElement.querySelectorAll('.shot-panel'),
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
function activate(name) {
|
|
69
|
+
panels.forEach(function (panel) {
|
|
70
|
+
panel.hidden = panel.getAttribute('data-tab') !== name;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var defaultTab = container.getAttribute('data-default-tab');
|
|
75
|
+
var initialRadio = radios.find(function (radio) {
|
|
76
|
+
return radio.value === defaultTab && !radio.disabled;
|
|
77
|
+
}) ||
|
|
78
|
+
radios.find(function (radio) {
|
|
79
|
+
return !radio.disabled;
|
|
80
|
+
});
|
|
81
|
+
if (initialRadio) {
|
|
82
|
+
initialRadio.checked = true;
|
|
83
|
+
activate(initialRadio.value);
|
|
84
|
+
}
|
|
13
85
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
86
|
+
radios.forEach(function (radio) {
|
|
87
|
+
radio.addEventListener('change', function () {
|
|
88
|
+
if (radio.disabled) return;
|
|
89
|
+
activate(radio.value);
|
|
90
|
+
});
|
|
17
91
|
});
|
|
18
92
|
}
|
|
19
93
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
radios.find(function (radio) {
|
|
25
|
-
return !radio.disabled;
|
|
94
|
+
document
|
|
95
|
+
.querySelectorAll('.shot-radio')
|
|
96
|
+
.forEach(function (container) {
|
|
97
|
+
setupShots(container);
|
|
26
98
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
99
|
+
})();
|
|
100
|
+
|
|
101
|
+
// Status filter for the stories list. Toggles `hidden` on each <li.story>
|
|
102
|
+
// whose `data-status` doesn't match the chosen radio value ("all" disables
|
|
103
|
+
// the filter). Live-region updates are debounced by ~150ms so arrow-key
|
|
104
|
+
// traversal across the radio group doesn't flood the polite region with
|
|
105
|
+
// every intermediate state; the visual hide/show is applied immediately.
|
|
106
|
+
(function () {
|
|
107
|
+
var fieldset = document.querySelector('.story-filter');
|
|
108
|
+
if (!fieldset) return;
|
|
109
|
+
var list = document.querySelector('.stories');
|
|
110
|
+
var empty = document.querySelector('.stories-empty');
|
|
111
|
+
if (!list || !empty) return;
|
|
112
|
+
|
|
113
|
+
var stories = Array.prototype.slice.call(list.querySelectorAll('.story'));
|
|
114
|
+
var radios = Array.prototype.slice.call(
|
|
115
|
+
fieldset.querySelectorAll('input[type="radio"]'),
|
|
116
|
+
);
|
|
117
|
+
var total = stories.length;
|
|
118
|
+
|
|
119
|
+
function apply(radio) {
|
|
120
|
+
var value = radio.value;
|
|
121
|
+
var name = radio.getAttribute('data-filter-name') || value;
|
|
122
|
+
var visible = 0;
|
|
123
|
+
stories.forEach(function (story) {
|
|
124
|
+
var match =
|
|
125
|
+
value === 'all' || story.getAttribute('data-status') === value;
|
|
126
|
+
story.hidden = !match;
|
|
127
|
+
if (match) visible += 1;
|
|
128
|
+
});
|
|
129
|
+
var hasNone = visible === 0;
|
|
130
|
+
list.hidden = hasNone;
|
|
131
|
+
empty.hidden = !hasNone;
|
|
132
|
+
|
|
133
|
+
var message;
|
|
134
|
+
if (value === 'all') {
|
|
135
|
+
message = 'Showing all ' + total + ' stories.';
|
|
136
|
+
} else if (hasNone) {
|
|
137
|
+
message = 'Filter: ' + name + '. No stories match.';
|
|
138
|
+
} else {
|
|
139
|
+
message =
|
|
140
|
+
'Filter: ' + name + '. ' + visible + ' of ' + total + ' stories shown.';
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
statusRegion.writeDebounced(message, 150);
|
|
30
144
|
}
|
|
31
145
|
|
|
32
146
|
radios.forEach(function (radio) {
|
|
33
147
|
radio.addEventListener('change', function () {
|
|
34
|
-
|
|
35
|
-
activate(radio.value);
|
|
148
|
+
apply(radio);
|
|
36
149
|
});
|
|
37
150
|
});
|
|
38
|
-
}
|
|
151
|
+
})();
|
|
152
|
+
|
|
153
|
+
// Bulk-toggle (expand all / collapse all) for the screenshot <details> panels.
|
|
154
|
+
// Acts on the moment: only visible rows (.story:not([hidden])) are affected,
|
|
155
|
+
// so the filter scope wins. Each <details> retains its own open state per
|
|
156
|
+
// native HTML semantics — newly-revealed stories after a later filter change
|
|
157
|
+
// stay closed by default (their default state). A future maintainer might be
|
|
158
|
+
// tempted to "fix" this by tracking a global expanded mode; don't — the lack
|
|
159
|
+
// of persistence is the agreed accessibility-lead decision (act-on-the-moment).
|
|
160
|
+
//
|
|
161
|
+
// We use `details.open = true/false` rather than `details.click()` so the
|
|
162
|
+
// browser does not dispatch a `toggle` event cascade for every panel.
|
|
163
|
+
//
|
|
164
|
+
// No debounce: bulk-toggle fires once per click (not on every arrow keypress
|
|
165
|
+
// like the filter does), so the live region is not at risk of being flooded.
|
|
166
|
+
// The filter's 150ms debounce exists because radios announce on every arrow
|
|
167
|
+
// move; here a single click → single message is fine.
|
|
168
|
+
//
|
|
169
|
+
// Live-region ordering: bulk-toggle writes synchronously via
|
|
170
|
+
// `statusRegion.write(msg)`, which internally cancels any pending filter
|
|
171
|
+
// debounce set by `writeDebounced`. Result: when a bulk-toggle fires within
|
|
172
|
+
// 150ms of a filter radio change, the most-recent action wins — the screen
|
|
173
|
+
// reader hears only the toggle announcement, not the now-stale filter one.
|
|
174
|
+
// This matches polite-region supersession semantics where unspoken pending
|
|
175
|
+
// updates yield to fresher writes.
|
|
176
|
+
(function () {
|
|
177
|
+
var buttons = Array.prototype.slice.call(
|
|
178
|
+
document.querySelectorAll('[data-bulk-toggle]'),
|
|
179
|
+
);
|
|
180
|
+
if (buttons.length === 0) return;
|
|
39
181
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
182
|
+
function apply(mode) {
|
|
183
|
+
var shouldOpen = mode === 'expand';
|
|
184
|
+
var visibleStories = Array.prototype.slice.call(
|
|
185
|
+
document.querySelectorAll('.story:not([hidden])'),
|
|
186
|
+
);
|
|
187
|
+
visibleStories.forEach(function (story) {
|
|
188
|
+
var panels = Array.prototype.slice.call(
|
|
189
|
+
story.querySelectorAll('details.shots'),
|
|
190
|
+
);
|
|
191
|
+
panels.forEach(function (panel) {
|
|
192
|
+
panel.open = shouldOpen;
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
// Announcement count uses visible stories rather than stories-with-details.
|
|
196
|
+
// A visible row with zero details is a no-op for the toggle, but the
|
|
197
|
+
// announcement reads the same to a screen reader either way, and this
|
|
198
|
+
// keeps the logic simple.
|
|
199
|
+
var count = visibleStories.length;
|
|
200
|
+
var verb = shouldOpen ? 'Expanded' : 'Collapsed';
|
|
201
|
+
statusRegion.write(verb + ' screenshots in ' + count + ' stories.');
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
buttons.forEach(function (button) {
|
|
205
|
+
button.addEventListener('click', function () {
|
|
206
|
+
apply(button.getAttribute('data-bulk-toggle'));
|
|
207
|
+
});
|
|
44
208
|
});
|
|
209
|
+
})();
|
|
45
210
|
})();
|
|
@@ -81,14 +81,51 @@ function renderStories(result, reportDir) {
|
|
|
81
81
|
const items = result.stories
|
|
82
82
|
.map((story, index) => renderStory(story, index, reportDir))
|
|
83
83
|
.join('\n');
|
|
84
|
+
const total = result.stories.length;
|
|
84
85
|
return `
|
|
85
86
|
<section aria-labelledby="stories-heading">
|
|
86
87
|
<h2 id="stories-heading">stories</h2>
|
|
88
|
+
<div class="stories-toolbar">
|
|
89
|
+
<fieldset class="story-filter">
|
|
90
|
+
<legend>filter</legend>
|
|
91
|
+
${storyFilterRadio('all', true)}
|
|
92
|
+
${storyFilterRadio('passed', false)}
|
|
93
|
+
${storyFilterRadio('changed', false)}
|
|
94
|
+
${storyFilterRadio('failed', false)}
|
|
95
|
+
</fieldset>
|
|
96
|
+
<div class="story-bulk-toggle">
|
|
97
|
+
<button type="button" class="chip story-bulk-toggle-button" data-bulk-toggle="expand">expand all</button>
|
|
98
|
+
<button type="button" class="chip story-bulk-toggle-button" data-bulk-toggle="collapse">collapse all</button>
|
|
99
|
+
</div>
|
|
100
|
+
<!--
|
|
101
|
+
The .story-filter-status region is the single polite live region for the
|
|
102
|
+
stories toolbar — it carries both filter announcements and bulk-toggle
|
|
103
|
+
(expand/collapse all) announcements. Adding a second polite region here
|
|
104
|
+
would race against this one; reuse is intentional.
|
|
105
|
+
-->
|
|
106
|
+
<p class="story-filter-status" role="status" aria-live="polite">Showing all ${total} stories.</p>
|
|
107
|
+
</div>
|
|
87
108
|
<ol class="stories" aria-label="Stories executed in dependency order">
|
|
88
109
|
${items}
|
|
89
110
|
</ol>
|
|
111
|
+
<p class="stories-empty" hidden>no stories match</p>
|
|
90
112
|
</section>`;
|
|
91
113
|
}
|
|
114
|
+
function storyFilterRadio(status, checked) {
|
|
115
|
+
const inputId = `story-filter-${status}`;
|
|
116
|
+
const value = status === 'passed' ? 'pass' : status;
|
|
117
|
+
return `<label for="${inputId}" class="chip chip--toggle story-filter-label">
|
|
118
|
+
<input
|
|
119
|
+
type="radio"
|
|
120
|
+
name="story-filter"
|
|
121
|
+
id="${inputId}"
|
|
122
|
+
value="${value}"
|
|
123
|
+
data-filter-name="${status}"
|
|
124
|
+
${checked ? 'checked' : ''}
|
|
125
|
+
/>
|
|
126
|
+
${status}
|
|
127
|
+
</label>`;
|
|
128
|
+
}
|
|
92
129
|
function renderStory(story, storyIndex, reportDir) {
|
|
93
130
|
const actions = story.actions
|
|
94
131
|
.map((action, actionIndex, all) => renderAction(action, `s${storyIndex}-a${actionIndex}`, actionIndex === all.length - 1, reportDir))
|
|
@@ -170,7 +207,7 @@ function renderScreenshots(action, actionId, reportDir) {
|
|
|
170
207
|
}
|
|
171
208
|
function shotRadio(actionId, name, disabled) {
|
|
172
209
|
const inputId = `${actionId}-radio-${name}`;
|
|
173
|
-
return `<label for="${inputId}" class="shot-radio-label">
|
|
210
|
+
return `<label for="${inputId}" class="chip chip--toggle shot-radio-label">
|
|
174
211
|
<input
|
|
175
212
|
type="radio"
|
|
176
213
|
name="${actionId}-shot"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/reporter/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAQrC,MAAM,aAAa,GAAiC;IAClD,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,cAAc;CACpB,CAAC;AAEF,MAAM,cAAc,GAAiC;IACnD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,GAAG,EAAE,GAAG;CACT,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,SAAiB;IAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO;;;;;0BAKiB,SAAS;;;;;;;;sBAQb,MAAM,CAAC,UAAU,KAAK,SAAS;;eAEtC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;;;;IAI5C,aAAa,CAAC,MAAM,CAAC;IACrB,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;IAChC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC;;;;;CAKtC,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;IAC1C,OAAO;;;;MAIH,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;MAC7C,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;MACjD,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;MACxD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;MACrD,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;MAChC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;;WAEvB,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CACnB,KAAa,EACb,MAAyD;IAEzD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,OAAO,yDAAyD,GAAG,8BAA8B,KAAK,2DAA2D,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,gCAAgC,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,KAAK,IAAI,KAAK,sBAAsB,CAAC;AAClS,CAAC;AAED,SAAS,WAAW,CAClB,KAAa,EACb,KAAa,EACb,SAAwB;IAExB,MAAM,SAAS,GAAG,SAAS;QACzB,CAAC,CAAC,wCAAwC,SAAS,8BAA8B;QACjF,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,2BACL,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,GAAG,CAAC,CAAC,CAAC,EAC9C,wBAAwB,KAAK,UAAU,SAAS,uBAAuB,KAAK,cAAc,CAAC;AAC7F,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB,EAAE,SAAiB;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO;SACzB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;SAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO;;;;
|
|
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
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { ResolvedConfig } from '../config.ts';
|
|
2
2
|
export interface ApproveOptions {
|
|
3
3
|
storyFilter?: string;
|
|
4
|
+
/**
|
|
5
|
+
* When `true`, only promote actions whose status is `new` (i.e. baselines
|
|
6
|
+
* that don't exist yet). Actions with status `changed` are counted as
|
|
7
|
+
* skipped. Lets users baseline newly-introduced stories without accepting
|
|
8
|
+
* drift on existing baselines.
|
|
9
|
+
*/
|
|
10
|
+
newOnly?: boolean;
|
|
4
11
|
}
|
|
5
12
|
export interface ApproveSummary {
|
|
6
13
|
approved: number;
|
|
@@ -11,7 +18,8 @@ export interface ApproveSummary {
|
|
|
11
18
|
* `changed` or `new` action's actual screenshot to its baseline. The
|
|
12
19
|
* accessibility-tree snapshot (`a11y.yaml`) is promoted alongside the PNG
|
|
13
20
|
* so the a11y baseline stays in lock-step with the visual one. Optional
|
|
14
|
-
* `storyFilter` limits the approval to one story file.
|
|
21
|
+
* `storyFilter` limits the approval to one story file. Optional `newOnly`
|
|
22
|
+
* limits promotion to `new` actions, leaving `changed` baselines untouched.
|
|
15
23
|
*/
|
|
16
24
|
export declare function approveAll(config: ResolvedConfig, options: ApproveOptions): Promise<ApproveSummary>;
|
|
17
25
|
//# sourceMappingURL=approve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../src/runner/approve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../src/runner/approve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAsCzB"}
|
package/dist/runner/approve.js
CHANGED
|
@@ -7,7 +7,8 @@ import { storyMatchesFilter } from "./storyFilter.js";
|
|
|
7
7
|
* `changed` or `new` action's actual screenshot to its baseline. The
|
|
8
8
|
* accessibility-tree snapshot (`a11y.yaml`) is promoted alongside the PNG
|
|
9
9
|
* so the a11y baseline stays in lock-step with the visual one. Optional
|
|
10
|
-
* `storyFilter` limits the approval to one story file.
|
|
10
|
+
* `storyFilter` limits the approval to one story file. Optional `newOnly`
|
|
11
|
+
* limits promotion to `new` actions, leaving `changed` baselines untouched.
|
|
11
12
|
*/
|
|
12
13
|
export async function approveAll(config, options) {
|
|
13
14
|
const resultsPath = join(config.paths.report, 'results.json');
|
|
@@ -23,7 +24,7 @@ export async function approveAll(config, options) {
|
|
|
23
24
|
continue;
|
|
24
25
|
}
|
|
25
26
|
for (const action of story.actions) {
|
|
26
|
-
if (!isApprovable(action)) {
|
|
27
|
+
if (!isApprovable(action, options.newOnly === true)) {
|
|
27
28
|
skipped += 1;
|
|
28
29
|
continue;
|
|
29
30
|
}
|
|
@@ -39,10 +40,13 @@ export async function approveAll(config, options) {
|
|
|
39
40
|
}
|
|
40
41
|
return { approved, skipped };
|
|
41
42
|
}
|
|
42
|
-
function isApprovable(action) {
|
|
43
|
+
function isApprovable(action, newOnly) {
|
|
43
44
|
if (action.status !== 'changed' && action.status !== 'new') {
|
|
44
45
|
return false;
|
|
45
46
|
}
|
|
47
|
+
if (newOnly && action.status === 'changed') {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
46
50
|
return Boolean(action.actualPath && action.baselinePath);
|
|
47
51
|
}
|
|
48
52
|
async function pathExists(path) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/runner/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/runner/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAkBtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAsB,EACtB,OAAuB;IAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACzD,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,8BAA8B,CACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;IAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IACE,OAAO,CAAC,WAAW;YACnB,CAAC,kBAAkB,CACjB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,EAC5C,OAAO,CAAC,WAAW,CACpB,EACD,CAAC;YACD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,MAAM,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7D,IACE,MAAM,CAAC,cAAc;gBACrB,MAAM,CAAC,gBAAgB;gBACvB,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EACzC,CAAC;gBACD,MAAM,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACvE,CAAC;YACD,QAAQ,IAAI,CAAC,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAOD,SAAS,YAAY,CACnB,MAAoB,EACpB,OAAgB;IAEhB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devServers.js","sourceRoot":"","sources":["../../../src/runner/bridges/devServers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"devServers.js","sourceRoot":"","sources":["../../../src/runner/bridges/devServers.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/runner/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/runner/run.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAmBlE,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,CAAC,CAsEpB"}
|
package/dist/runner/run.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { cpus } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
+
import { pathToFileURL } from 'node:url';
|
|
4
5
|
import { loadActions, loadStories } from "../schema/load.js";
|
|
5
6
|
import { writeReport } from "../reporter/writeReport.js";
|
|
6
7
|
import { computeFlowCoverage } from "../coverage/flows.js";
|
|
@@ -62,7 +63,7 @@ export async function runAll(config, options) {
|
|
|
62
63
|
stories: results,
|
|
63
64
|
};
|
|
64
65
|
const reportPath = await writeReport(config.paths.report, runResult);
|
|
65
|
-
|
|
66
|
+
writeRunSummary(results, runResult.totals, reportPath);
|
|
66
67
|
if (coverage) {
|
|
67
68
|
const coveragePath = await coverage.generate();
|
|
68
69
|
process.stdout.write(`Coverage: ${coveragePath}\n`);
|
|
@@ -118,4 +119,36 @@ function summarise(results) {
|
|
|
118
119
|
failed: results.filter((result) => result.status === 'failed').length,
|
|
119
120
|
};
|
|
120
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Emits the end-of-run tail. The streaming `▶`/`PASS|CHANGED|FAILED` lines
|
|
124
|
+
* already cover the heartbeat; this groups the noteworthy stories
|
|
125
|
+
* (changed + failed) in finish order so a user scanning the terminal lands
|
|
126
|
+
* on the actionable list directly above the totals. The `Report:` line is
|
|
127
|
+
* a `file://` URL so terminals that recognise file URIs (iTerm2, Warp, VS
|
|
128
|
+
* Code) render it as a clickable link.
|
|
129
|
+
*/
|
|
130
|
+
function writeRunSummary(results, totals, reportPath) {
|
|
131
|
+
const changed = results.filter((result) => result.status === 'changed');
|
|
132
|
+
const failed = results.filter((result) => result.status === 'failed');
|
|
133
|
+
if (changed.length > 0 || failed.length > 0) {
|
|
134
|
+
process.stdout.write('\n');
|
|
135
|
+
if (changed.length > 0) {
|
|
136
|
+
process.stdout.write('Changed:\n');
|
|
137
|
+
for (const result of changed) {
|
|
138
|
+
process.stdout.write(` ${formatSummaryLine(result)}\n`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (failed.length > 0) {
|
|
142
|
+
process.stdout.write('Failed:\n');
|
|
143
|
+
for (const result of failed) {
|
|
144
|
+
process.stdout.write(` ${formatSummaryLine(result)}\n`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
process.stdout.write(`\nTotals: ${totals.passed} pass · ${totals.changed} changed · ${totals.failed} failed\n`);
|
|
149
|
+
process.stdout.write(`Report: ${pathToFileURL(reportPath).href}\n`);
|
|
150
|
+
}
|
|
151
|
+
function formatSummaryLine(result) {
|
|
152
|
+
return `${result.status.toUpperCase()} ${result.file} — ${result.story} (${result.actions.length} actions, ${result.durationMs} ms)`;
|
|
153
|
+
}
|
|
121
154
|
//# sourceMappingURL=run.js.map
|
package/dist/runner/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/runner/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/runner/run.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/runStory.js
CHANGED
|
@@ -30,7 +30,7 @@ async function runStoryWithBrowser(browser, options, startedAt) {
|
|
|
30
30
|
const storageStatePath = await resolveStorageStateForNeeds(config, needs);
|
|
31
31
|
const context = await browser.newContext({
|
|
32
32
|
baseURL: config.baseUrl,
|
|
33
|
-
viewport: config.viewport,
|
|
33
|
+
viewport: story.viewport ?? config.viewport,
|
|
34
34
|
storageState: storageStatePath,
|
|
35
35
|
ignoreHTTPSErrors: true,
|
|
36
36
|
permissions: ['clipboard-read', 'clipboard-write'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runStory.js","sourceRoot":"","sources":["../../src/runner/runStory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAqC,MAAM,YAAY,CAAC;AASzE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAa3C,MAAM,YAAY,GAAG,QAAQ,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnD,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,OAAO,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAgB,EAChB,OAAwB,EACxB,SAAe;IAEf,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC5E,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"runStory.js","sourceRoot":"","sources":["../../src/runner/runStory.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/story.d.ts
CHANGED
|
@@ -25,6 +25,10 @@ export declare const storySchema: z.ZodObject<{
|
|
|
25
25
|
produces: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
26
26
|
fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
27
|
flow: z.ZodOptional<z.ZodString>;
|
|
28
|
+
viewport: z.ZodOptional<z.ZodObject<{
|
|
29
|
+
width: z.ZodNumber;
|
|
30
|
+
height: z.ZodNumber;
|
|
31
|
+
}, z.core.$strip>>;
|
|
28
32
|
actions: z.ZodArray<z.ZodObject<{
|
|
29
33
|
action: z.ZodString;
|
|
30
34
|
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/schema/story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/schema/story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;iBAqCtB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAMtD"}
|
package/dist/schema/story.js
CHANGED
|
@@ -37,6 +37,19 @@ export const storySchema = z.object({
|
|
|
37
37
|
* whitespace-insensitive.
|
|
38
38
|
*/
|
|
39
39
|
flow: z.string().min(1).optional(),
|
|
40
|
+
/**
|
|
41
|
+
* Override the config-level `viewport` for this story's browser
|
|
42
|
+
* context. Width and height must be positive integers. Stories without
|
|
43
|
+
* an override inherit the resolved config default. The override does
|
|
44
|
+
* not cascade onto consumer stories that inherit storage state via
|
|
45
|
+
* `needs`/`produces` — each story resolves its own viewport.
|
|
46
|
+
*/
|
|
47
|
+
viewport: z
|
|
48
|
+
.object({
|
|
49
|
+
width: z.number().int().positive(),
|
|
50
|
+
height: z.number().int().positive(),
|
|
51
|
+
})
|
|
52
|
+
.optional(),
|
|
40
53
|
actions: z.array(storyStepSchema).min(1),
|
|
41
54
|
});
|
|
42
55
|
/**
|
package/dist/schema/story.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story.js","sourceRoot":"","sources":["../../src/schema/story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAIH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C;;;;;;;;;OASG;IACH,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C;;;;;OAKG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACzC,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"story.js","sourceRoot":"","sources":["../../src/schema/story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAIH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C;;;;;;;;;OASG;IACH,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C;;;;;OAKG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC;SACD,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACzC,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tuffgal",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.6",
|
|
4
4
|
"description": "JSON-driven visual regression for web apps.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Nick Schneble",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"install:browsers": "playwright install chromium",
|
|
16
16
|
"lint": "eslint \"src/**/*.ts\" --max-warnings=0",
|
|
17
17
|
"prepublishOnly": "npm run lint && npm run typecheck && npm run build",
|
|
18
|
-
"test": "
|
|
18
|
+
"test": "node --import tsx --test \"src/**/*.test.ts\"",
|
|
19
19
|
"typecheck": "tsc --noEmit"
|
|
20
20
|
},
|
|
21
21
|
"bin": {
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"eslint": "^9.39.1",
|
|
68
68
|
"eslint-config-prettier": "^10.1.8",
|
|
69
69
|
"prettier": "^3.7.4",
|
|
70
|
+
"tsx": "^4.22.4",
|
|
70
71
|
"typescript": "~5.9.3",
|
|
71
72
|
"typescript-eslint": "^8.49.0"
|
|
72
73
|
}
|