@molecule/api-ai-tools 1.10.0 → 1.10.2
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/README.md +162 -14
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +2 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +136 -36
- package/dist/trace-artifacts.d.ts +10 -0
- package/dist/trace-artifacts.d.ts.map +1 -1
- package/dist/trace-artifacts.js +134 -21
- package/dist/types.d.ts +27 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities.d.ts +114 -12
- package/dist/utilities.d.ts.map +1 -1
- package/dist/utilities.js +424 -33
- package/package.json +1 -1
package/dist/trace-artifacts.js
CHANGED
|
@@ -203,22 +203,35 @@ function messageOf(value) {
|
|
|
203
203
|
const FILLING_ACTION = /\\.(?:fill|type|pressSequentially|selectOption)$/
|
|
204
204
|
|
|
205
205
|
// The text a failing assertion waited for, named by its own error: a \`has-text(…)\` CSS
|
|
206
|
-
// pseudo-class, a \`getByText(…)\` locator, or a \`toContainText(…)\` expectation
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
//
|
|
206
|
+
// pseudo-class, a \`getByText(…)\` locator, or a \`toContainText(…)\` expectation — and only when
|
|
207
|
+
// the failure IS an absence of that text. A strict-mode violation is not this shape (two elements
|
|
208
|
+
// DID match), and neither is a wait on a selector with no text argument.
|
|
209
|
+
//
|
|
210
|
+
// A locator that RESOLVED is not an absent element either: Playwright names the element it matched
|
|
211
|
+
// and then says why the action could not run (m194's disabled button carried the very title the
|
|
212
|
+
// note called missing). A disabled, invisible, unstable, detached or intercepted control is a
|
|
213
|
+
// control problem, not a rendering one, so none of those shapes may produce a missing-text reading.
|
|
214
|
+
// The ANSI colouring Playwright leaves in the message is dropped before the read, or the quotes it
|
|
215
|
+
// wraps around a locator would never parse.
|
|
210
216
|
function waitedTextOf(message) {
|
|
211
217
|
if (!message) return null
|
|
212
218
|
const text = String(message).replace(/\\u001b\\[[0-9;]*m/g, '')
|
|
213
219
|
if (text.indexOf('strict mode violation') !== -1) return null
|
|
220
|
+
if (text.indexOf('locator resolved to') !== -1) return null
|
|
221
|
+
if (/element is not (?:enabled|visible|stable|attached)/.test(text)) return null
|
|
222
|
+
if (/intercepts? pointer events/.test(text)) return null
|
|
223
|
+
// Playwright's own not-found marker is what an absence assertion leaves behind; a text
|
|
224
|
+
// expectation that failed on an element it DID find is the other absence shape (its received
|
|
225
|
+
// text lacks the expected one).
|
|
226
|
+
const notFound = /element\\(s\\) not found|element is not found/.test(text)
|
|
214
227
|
const quoted = function (pattern) {
|
|
215
228
|
const m = pattern.exec(text)
|
|
216
229
|
return m === null ? null : m[2]
|
|
217
230
|
}
|
|
218
231
|
const hasText = quoted(/has-text\\(\\s*(['"])((?:(?!\\1).)*)\\1/)
|
|
219
|
-
if (hasText !== null) return hasText
|
|
232
|
+
if (hasText !== null) return notFound ? hasText : null
|
|
220
233
|
const byText = quoted(/getByText\\(\\s*(['"])((?:(?!\\1).)*)\\1/)
|
|
221
|
-
if (byText !== null) return byText
|
|
234
|
+
if (byText !== null) return notFound ? byText : null
|
|
222
235
|
if (text.indexOf('toContainText') === -1) return null
|
|
223
236
|
return quoted(/Expected(?: string)?:\\s*(["'])((?:(?!\\1).)*)\\1/)
|
|
224
237
|
}
|
|
@@ -479,6 +492,11 @@ for (const one of found.slice(0, MAX_TRACES)) {
|
|
|
479
492
|
context: ctx.id,
|
|
480
493
|
pageId: typeof snap.pageId === 'string' ? snap.pageId : undefined,
|
|
481
494
|
frameId: typeof snap.frameId === 'string' ? snap.frameId : undefined,
|
|
495
|
+
// The snapshot's own DOM tree, kept by reference (the trace line already holds it). The
|
|
496
|
+
// note reads its text only when it has to prove an awaited value was absent from the page
|
|
497
|
+
// (m194's false "dropped before rendering" lead). Playwright serializes text nodes as
|
|
498
|
+
// strings and elements as [tag, attrs, ...children].
|
|
499
|
+
snapshot: snap.html,
|
|
482
500
|
})
|
|
483
501
|
}
|
|
484
502
|
for (const entry of ctx.trace) {
|
|
@@ -776,25 +794,103 @@ for (const one of found.slice(0, MAX_TRACES)) {
|
|
|
776
794
|
if (sent) r.sent = sent
|
|
777
795
|
if (got) r.got = got
|
|
778
796
|
}
|
|
797
|
+
// The text a frame snapshot SHOWED, so a page that still carried the awaited value is never
|
|
798
|
+
// described as having dropped it. Playwright serializes the DOM as strings (text nodes) and
|
|
799
|
+
// [tag, attrs, ...children] elements, with a subtree reference ([[snapshotIndex, nodeIndex]]) to
|
|
800
|
+
// a node an earlier snapshot of the same frame carried. \`script\`/\`style\` bodies are skipped,
|
|
801
|
+
// as the trace viewer skips them: code is not what the page showed. Null when the snapshot is
|
|
802
|
+
// absent or a reference cannot be resolved — an unreadable snapshot proves nothing.
|
|
803
|
+
function snapshotShowed(frame) {
|
|
804
|
+
const tree = frame.snapshot
|
|
805
|
+
if (tree === undefined || tree === null) return null
|
|
806
|
+
const shown = framesAll.filter(function (f) {
|
|
807
|
+
return f.context === frame.context && f.pageId === frame.pageId
|
|
808
|
+
})
|
|
809
|
+
const nodesOf = function (value) {
|
|
810
|
+
const nodes = []
|
|
811
|
+
const collect = function (n) {
|
|
812
|
+
if (typeof n === 'string') { nodes.push(n); return }
|
|
813
|
+
if (!Array.isArray(n) || typeof n[0] !== 'string') return
|
|
814
|
+
for (let i = 2; i < n.length; i++) collect(n[i])
|
|
815
|
+
nodes.push(n)
|
|
816
|
+
}
|
|
817
|
+
collect(value)
|
|
818
|
+
return nodes
|
|
819
|
+
}
|
|
820
|
+
const out = []
|
|
821
|
+
let visited = 0
|
|
822
|
+
let readable = true
|
|
823
|
+
const visit = function (n) {
|
|
824
|
+
if (++visited > 400000) { readable = false; return }
|
|
825
|
+
if (typeof n === 'string') { out.push(n); return }
|
|
826
|
+
if (!Array.isArray(n)) return
|
|
827
|
+
if (Array.isArray(n[0])) {
|
|
828
|
+
const ref = n[0]
|
|
829
|
+
const at = Array.isArray(ref) && typeof ref[0] === 'number' ? ref[0] : -1
|
|
830
|
+
const node = Array.isArray(ref) && typeof ref[1] === 'number' ? ref[1] : -1
|
|
831
|
+
const earlier = at >= 0 && at < shown.length && shown[at].snapshot != null ? shown[at].snapshot : null
|
|
832
|
+
const nodes = earlier === null ? [] : nodesOf(earlier)
|
|
833
|
+
if (node < 0 || node >= nodes.length) { readable = false; return }
|
|
834
|
+
visit(nodes[node])
|
|
835
|
+
return
|
|
836
|
+
}
|
|
837
|
+
if (typeof n[0] !== 'string') return
|
|
838
|
+
const name = n[0].toUpperCase()
|
|
839
|
+
if (name === 'SCRIPT' || name === 'STYLE') return
|
|
840
|
+
for (let i = 2; i < n.length; i++) visit(n[i])
|
|
841
|
+
}
|
|
842
|
+
visit(tree)
|
|
843
|
+
return readable ? out.join('') : null
|
|
844
|
+
}
|
|
779
845
|
// The text the failing assertion waited for, and a response the SAME page received that carried
|
|
780
846
|
// it (m169). The assertion's own error names the text; the network log says whether it ever
|
|
781
847
|
// reached the browser. Only an answered fetch/xhr can say the API returned it — a 4xx body is an
|
|
782
848
|
// error message, not data. The most focused response wins (smallest body): an articles list also
|
|
783
849
|
// carries tag names in its \`tagList\`, while the tags response is the collection whose membership
|
|
784
850
|
// the assertion tests.
|
|
851
|
+
//
|
|
852
|
+
// The "page drops it before rendering" claim is made only when the trace PROVES it: a successful
|
|
853
|
+
// GET of the collection that STARTED AFTER the last navigation, and the awaited text absent from
|
|
854
|
+
// the page's own failure snapshot. A creation POST says nothing about what a collection render
|
|
855
|
+
// drops — m194's button failure was labelled missing while its title was on the page and the
|
|
856
|
+
// only carrier was \`POST /api/articles\` — and a snapshot that still shows the text says the
|
|
857
|
+
// opposite. Without that proof the note only says a response contained the text.
|
|
785
858
|
const waitedText = waitedTextOf(failedError)
|
|
786
859
|
let missingText = null
|
|
787
860
|
if (waitedText !== null && !unattributed) {
|
|
861
|
+
let lastNavigation = null
|
|
862
|
+
for (const a of actions) {
|
|
863
|
+
if (!/\\.(?:goto|reload|goBack|goForward)$/.test(a.api)) continue
|
|
864
|
+
if (lastNavigation === null || a.start > lastNavigation) lastNavigation = a.start
|
|
865
|
+
}
|
|
788
866
|
let best = null
|
|
867
|
+
let bestGet = null
|
|
789
868
|
for (const r of requests) {
|
|
790
869
|
if (r.type !== 'fetch' && r.type !== 'xhr') continue
|
|
791
870
|
if (r.status < 200 || r.status >= 400) continue
|
|
792
871
|
const got = gotText(buf, entries, r)
|
|
793
872
|
if (!got || got.indexOf(waitedText) === -1) continue
|
|
794
873
|
if (best === null || got.length < best.got.length) best = { request: r, got: got }
|
|
874
|
+
// The collection read the claim may rest on: a GET that started after the last navigation
|
|
875
|
+
// (a request that started before it belongs to the page load, not to the failure).
|
|
876
|
+
if (r.method !== 'GET') continue
|
|
877
|
+
if (lastNavigation === null || typeof r.startedAt !== 'number' || r.startedAt <= lastNavigation) continue
|
|
878
|
+
if (bestGet === null || got.length < bestGet.got.length) bestGet = { request: r, got: got }
|
|
879
|
+
}
|
|
880
|
+
if (best !== null) {
|
|
881
|
+
const named = bestGet === null ? best : bestGet
|
|
882
|
+
let dropped = false
|
|
883
|
+
if (bestGet !== null && frames.length > 0) {
|
|
884
|
+
const shown = snapshotShowed(frames[frames.length - 1])
|
|
885
|
+
dropped = shown !== null && shown.indexOf(waitedText) === -1
|
|
886
|
+
}
|
|
887
|
+
missingText = {
|
|
888
|
+
text: waitedText,
|
|
889
|
+
method: named.request.method,
|
|
890
|
+
path: named.request.path,
|
|
891
|
+
...(dropped ? { dropped: true } : {}),
|
|
892
|
+
}
|
|
795
893
|
}
|
|
796
|
-
if (best !== null)
|
|
797
|
-
missingText = { text: waitedText, method: best.request.method, path: best.request.path }
|
|
798
894
|
}
|
|
799
895
|
function wire(r) {
|
|
800
896
|
return {
|
|
@@ -1081,7 +1177,12 @@ function parseMissingText(value) {
|
|
|
1081
1177
|
return null;
|
|
1082
1178
|
if (typeof raw.path !== 'string' || raw.path === '')
|
|
1083
1179
|
return null;
|
|
1084
|
-
return {
|
|
1180
|
+
return {
|
|
1181
|
+
text: raw.text,
|
|
1182
|
+
method: raw.method,
|
|
1183
|
+
path: raw.path,
|
|
1184
|
+
...(raw.dropped === true ? { dropped: true } : {}),
|
|
1185
|
+
};
|
|
1085
1186
|
}
|
|
1086
1187
|
/**
|
|
1087
1188
|
* One `readContradiction` out of a `TRACE` line's json, or null when the value is not one.
|
|
@@ -2141,15 +2242,22 @@ function missingApiPrefixSentence(request) {
|
|
|
2141
2242
|
/**
|
|
2142
2243
|
* The sentence for a failing assertion whose awaited text a same-page API response carried.
|
|
2143
2244
|
*
|
|
2144
|
-
*
|
|
2145
|
-
* did not render it — and stops there. Which
|
|
2146
|
-
*
|
|
2147
|
-
* step is the whole instruction
|
|
2245
|
+
* With proof ({@link TraceMissingText.dropped}) it names the response and the fact the trace
|
|
2246
|
+
* proves — the value reached the browser and the page did not render it — and stops there. Which
|
|
2247
|
+
* cut drops it (a slice, a filter, a limit) is in the component that maps the response, and the
|
|
2248
|
+
* note cannot see that component; naming the mapping step is the whole instruction
|
|
2249
|
+
* (xr-molecule-flash-m169).
|
|
2250
|
+
*
|
|
2251
|
+
* Without that proof the sentence says only what the trace shows — a response contained the text —
|
|
2252
|
+
* and makes no rendering claim: m194's awaited title was on the page, in a disabled button, while
|
|
2253
|
+
* the only response carrying it was the creation POST (a button failure is not a missing article).
|
|
2148
2254
|
*
|
|
2149
2255
|
* @param missing - The awaited text and the response that carried it.
|
|
2150
2256
|
* @returns The sentence the note leads with.
|
|
2151
2257
|
*/
|
|
2152
2258
|
function missingTextSentence(missing) {
|
|
2259
|
+
if (missing.dropped !== true)
|
|
2260
|
+
return `The response ${missing.method} ${missing.path} contained "${missing.text}".`;
|
|
2153
2261
|
return (`The API returned "${missing.text}" (in ${missing.method} ${missing.path}), but the page did ` +
|
|
2154
2262
|
`not render it — the page drops it before rendering (a slice/filter/limit in the component ` +
|
|
2155
2263
|
`that renders that list); find where that response is mapped.`);
|
|
@@ -2746,14 +2854,19 @@ export function failureTraceNote(items, target, earlierFailures = [], apiPrefixe
|
|
|
2746
2854
|
// first, before any row, is that the value arrived and the page dropped it (m169's missing
|
|
2747
2855
|
// "trending" came back from GET /api/tags while the sidebar rendered a cut list). Each distinct
|
|
2748
2856
|
// response is named once; the note makes no claim about which cut did it.
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2857
|
+
// One sentence per response; a trace that PROVES the drop upgrades one that only saw the same
|
|
2858
|
+
// response carry the text.
|
|
2859
|
+
const missingByResponse = new Map();
|
|
2860
|
+
for (const item of traced) {
|
|
2861
|
+
if (item.missingText === undefined)
|
|
2862
|
+
continue;
|
|
2863
|
+
const missing = item.missingText;
|
|
2864
|
+
const key = `${missing.method} ${missing.path}\u0000${missing.text}`;
|
|
2865
|
+
const seen = missingByResponse.get(key);
|
|
2866
|
+
if (seen === undefined || (seen.dropped !== true && missing.dropped === true))
|
|
2867
|
+
missingByResponse.set(key, missing);
|
|
2868
|
+
}
|
|
2869
|
+
const missingTexts = [...missingByResponse.values()];
|
|
2757
2870
|
const missingTextLead = missingTexts.length === 0
|
|
2758
2871
|
? ''
|
|
2759
2872
|
: `${missingTexts.slice(0, 2).map(missingTextSentence).join(' ')}\n\n`;
|
package/dist/types.d.ts
CHANGED
|
@@ -63,14 +63,34 @@ export interface SuiteBudgetPin {
|
|
|
63
63
|
/**
|
|
64
64
|
* The Playwright flags that carry the suite's own settings onto the command
|
|
65
65
|
* (`--timeout=15000`, `--workers=1`), as the consumer's own scan reads them. Empty when the
|
|
66
|
-
* difference is in settings no flag carries
|
|
66
|
+
* difference is in settings no flag carries.
|
|
67
67
|
*/
|
|
68
68
|
flags: string[];
|
|
69
|
+
/** One sentence for the run's result: which of the suite's own settings this run uses. */
|
|
70
|
+
note: string;
|
|
69
71
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
+
* A config file the consumer wrote OUTSIDE the supplied suite, which re-imports the config the
|
|
73
|
+
* run selected and pins the settings no Playwright flag can carry (`expect.timeout`,
|
|
74
|
+
* `use.actionTimeout`, `use.navigationTimeout`). When present, the run is launched with
|
|
75
|
+
* `--config <this path>` in place of the config it named, so those settings are the suite's own
|
|
76
|
+
* rather than the executor's. Absent when the consumer could not write one.
|
|
72
77
|
*/
|
|
73
|
-
|
|
78
|
+
config?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Every setting the derived config ({@link config}) pins at the suite's own value, by the scan's
|
|
81
|
+
* key (`timeout`, `expect.timeout`, `actionTimeout`, `navigationTimeout`), in milliseconds as
|
|
82
|
+
* digits. Empty when no derived config was placed.
|
|
83
|
+
*/
|
|
84
|
+
values?: Record<string, string>;
|
|
85
|
+
/**
|
|
86
|
+
* Every setting the run's own config makes different from the suite's, as the consumer's scan
|
|
87
|
+
* read them: the value this run's config writes and the suite's own. The tool reports the ones
|
|
88
|
+
* its placement did NOT put back, so a result never claims a drift it carried.
|
|
89
|
+
*/
|
|
90
|
+
drift?: Record<string, {
|
|
91
|
+
used: string;
|
|
92
|
+
suite: string;
|
|
93
|
+
}>;
|
|
74
94
|
}
|
|
75
95
|
/**
|
|
76
96
|
* Configuration for building the tool set.
|
|
@@ -188,7 +208,8 @@ export interface ToolBuildConfig {
|
|
|
188
208
|
* different settings, asked BEFORE the run executes. The consumer knows where the suite and its
|
|
189
209
|
* base config live; this shared package does not, so the reading is the consumer's and the
|
|
190
210
|
* mechanics — putting the flags on the runner's own arguments, before the pipeline and outside
|
|
191
|
-
* any redirect or group closer
|
|
211
|
+
* any redirect or group closer, and pointing `--config` at the derived config that carries the
|
|
212
|
+
* settings no flag can — are this tool's.
|
|
192
213
|
*
|
|
193
214
|
* Called for a Playwright suite command only, and only the LAST suite step is touched. A run
|
|
194
215
|
* that already keeps the suite's settings, or a sandbox with no supplied suite, answers `null`.
|
|
@@ -196,7 +217,7 @@ export interface ToolBuildConfig {
|
|
|
196
217
|
*
|
|
197
218
|
* @param command - The shell command, as the model sent it.
|
|
198
219
|
* @param cwd - The resolved working directory it will run in.
|
|
199
|
-
* @returns The flags and the sentence, or null when nothing is put back.
|
|
220
|
+
* @returns The flags, the derived config and the sentence, or null when nothing is put back.
|
|
200
221
|
*/
|
|
201
222
|
suiteBudget?: (command: string, cwd: string) => Promise<SuiteBudgetPin | null | undefined>;
|
|
202
223
|
/** Post-write hook (e.g. auto-format via Prettier/ESLint). Called after every write_file/edit_file. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yFAAyF;IACzF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IAEzB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEvC,qEAAqE;IACrE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvD,qBAAqB;IACrB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvC,mCAAmC;IACnC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC,CAAC,CAAA;IAEnF;;;OAGG;IACH,GAAG,CACD,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACA,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,KAAK,EAAE,MAAM,EAAE,CAAA;IACf
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utilities.d.ts
CHANGED
|
@@ -130,8 +130,9 @@ export declare function outputRedirectTarget(command: string): string | null;
|
|
|
130
130
|
* inline the end-of-run repeat is suppressed with it (`epilogue(!printFailuresInline)`), so one
|
|
131
131
|
* reporter still prints each failure exactly once.
|
|
132
132
|
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
133
|
+
* Every background command is given this (see {@link streamingBackgroundCommand}), so a suite the
|
|
134
|
+
* executor starts through its own wrapper is covered too — the wrapper passes the environment on
|
|
135
|
+
* to the Playwright process it spawns. Without it the log's only failure lines are `✘` rows:
|
|
135
136
|
* X1 xr-molecule-flash-m99 (+19:27 → +21:00, 2026-10-16) was told to `grep -n -A 20 '<test name>'`
|
|
136
137
|
* the log, got nothing back through four greps, inferred causes from the spec prose instead, and
|
|
137
138
|
* edited `app/src` while the run was still walking — which voids the run.
|
|
@@ -166,10 +167,12 @@ export declare const PLAYWRIGHT_FAILURES_INLINE_ENV = "PLAYWRIGHT_LIST_PRINT_FAI
|
|
|
166
167
|
* `junit`) is the
|
|
167
168
|
* executor's own and is left exactly as it is — so is any reporter this build does not know.
|
|
168
169
|
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
170
|
+
* Every background command that is not a no-test invocation is also given
|
|
171
|
+
* {@link PLAYWRIGHT_FAILURES_INLINE_ENV} (inert except for Playwright's `list` reporter), so each
|
|
172
|
+
* failure's own error is in the log as that test fails rather than only at the end: a suite that is
|
|
173
|
+
* still walking is exactly when the executor reads the log, and without it a running log carries
|
|
174
|
+
* `✘` rows and nothing else (xr-molecule-flash-m99 spent ~90 s on greps of one, then fixed what it
|
|
175
|
+
* guessed; m191's wrapper-launched run lost 6.5 minutes to the same shape).
|
|
173
176
|
*
|
|
174
177
|
* Only the step that runs the suite is touched, and only its reporter, and only when that step
|
|
175
178
|
* runs something: `npx playwright test --list` takes two seconds and writes nothing per test, so
|
|
@@ -271,6 +274,28 @@ export declare function suiteRunBudgetCommand(command: string, flags: readonly s
|
|
|
271
274
|
placed: string[];
|
|
272
275
|
unplaced: string[];
|
|
273
276
|
};
|
|
277
|
+
/**
|
|
278
|
+
* A command with the derived config put on the LAST suite runner's own arguments, replacing the
|
|
279
|
+
* config the run names or added when it names none.
|
|
280
|
+
*
|
|
281
|
+
* Some of the suite's settings have no Playwright flag (`expect.timeout`, `use.actionTimeout`,
|
|
282
|
+
* `use.navigationTimeout`), so a config the executor wrote cannot be corrected from the command
|
|
283
|
+
* line. The consumer writes a derived config OUTSIDE the supplied suite that re-imports the one
|
|
284
|
+
* the run selected and pins those settings ({@link SuiteBudgetPin.config}); pointing the runner at
|
|
285
|
+
* it is the one way to carry them, and it belongs on the runner itself for the same reasons
|
|
286
|
+
* {@link suiteRunBudgetCommand}'s flags do (last suite step, before a pipe or group closer).
|
|
287
|
+
*
|
|
288
|
+
* A command whose runner cannot be placed is returned exactly as written with `placed: false`, so
|
|
289
|
+
* the caller never claims a config it did not point the run at.
|
|
290
|
+
*
|
|
291
|
+
* @param command - The shell command about to run.
|
|
292
|
+
* @param config - The config to run, as the runner takes it (`--config <path>`).
|
|
293
|
+
* @returns The command to run and whether the config was placed.
|
|
294
|
+
*/
|
|
295
|
+
export declare function suiteRunConfigCommand(command: string, config: string): {
|
|
296
|
+
command: string;
|
|
297
|
+
placed: boolean;
|
|
298
|
+
};
|
|
274
299
|
/**
|
|
275
300
|
* The command with the `timeout <N>` wrapper lifted off the statement that runs the suite, and the
|
|
276
301
|
* bound that was lifted.
|
|
@@ -888,6 +913,26 @@ export interface RepeatingFailure {
|
|
|
888
913
|
* distinct tests behind it.
|
|
889
914
|
*/
|
|
890
915
|
export declare function repeatingFailure(log: string): RepeatingFailure | null;
|
|
916
|
+
/**
|
|
917
|
+
* Whether the log read so far carries a failure's own body under a `✘` row — the evidence that a
|
|
918
|
+
* run prints each failure's error as that test fails ({@link PLAYWRIGHT_FAILURES_INLINE_ENV}).
|
|
919
|
+
*
|
|
920
|
+
* `wait_for_task` promises the executor that each failure's report sits right under its `✘` line
|
|
921
|
+
* only when the log proves it. The command's shape cannot answer: the launch sets the switch on
|
|
922
|
+
* every background command (the executor's wrapper script inherits it), so a wrapper this reader
|
|
923
|
+
* cannot place is exactly as covered as `npx playwright test` ({@link streamingBackgroundCommand}).
|
|
924
|
+
* The log is the evidence — a `1) [project] › spec › title ───` block whose test the log also
|
|
925
|
+
* printed with `✘` ({@link failureBlocks}).
|
|
926
|
+
*
|
|
927
|
+
* A block alone is not enough: a FINISHED run's end-of-run summary carries the same blocks, and a
|
|
928
|
+
* running wait must not be told "as it fails" about a log whose bodies only appear at the end.
|
|
929
|
+
* During a wait the run has not ended (the exit file is read first), so a block beside a `✘` row
|
|
930
|
+
* is one the reporter printed inline.
|
|
931
|
+
*
|
|
932
|
+
* @param log - A log, or the slice of one a wait reads.
|
|
933
|
+
* @returns True when a `✘` row's own test has a failure body under it.
|
|
934
|
+
*/
|
|
935
|
+
export declare function logShowsInlineFailureBodies(log: string): boolean;
|
|
891
936
|
/** How many of a repeating cause's failures the note lists before it says "and N more". */
|
|
892
937
|
export declare const REPEATING_FAILURE_LISTED = 5;
|
|
893
938
|
/**
|
|
@@ -956,11 +1001,12 @@ export interface UniversalCause {
|
|
|
956
1001
|
* (m177: 18 tests, ~4.2 minutes, on a page whose thrown error was visible in the first
|
|
957
1002
|
* `pageerror`). Three is the smallest count that is not one page's own bug: the cause additionally
|
|
958
1003
|
* needs three DISTINCT spec files (`UNIVERSAL_CAUSE_FILES`, or the files a narrowed run selected),
|
|
959
|
-
*
|
|
960
|
-
*
|
|
961
|
-
*
|
|
962
|
-
*
|
|
963
|
-
* about one test's worth
|
|
1004
|
+
* no failure showing a locator RESOLVING ({@link ELEMENT_FOUND} — a blank page cannot resolve
|
|
1005
|
+
* one), and no test passing after the first failure. A page that renders misses elements, but
|
|
1006
|
+
* three unrelated specs in three files failing at three different locators that never resolved,
|
|
1007
|
+
* with nothing passing in between, is the page, not three bugs. At the suite's own 5 s action
|
|
1008
|
+
* timeout that verdict lands ~20 s into the walk, so the early stop costs about one test's worth
|
|
1009
|
+
* of time instead of fifteen.
|
|
964
1010
|
*/
|
|
965
1011
|
export declare const EMPTY_PAGE_CAUSE_TESTS = 3;
|
|
966
1012
|
/**
|
|
@@ -1119,6 +1165,19 @@ export interface CausePageErrors {
|
|
|
1119
1165
|
where: string;
|
|
1120
1166
|
/** The alert / error items the page showed at the moment it failed. */
|
|
1121
1167
|
items: readonly string[];
|
|
1168
|
+
/**
|
|
1169
|
+
* The landmark roles the test's page snapshot printed (`navigation`, `banner`), read from the
|
|
1170
|
+
* YAML block of its own `error-context.md`. Present ONLY when the caller has that test's
|
|
1171
|
+
* snapshot; an empty array means the snapshot was read and showed no landmark, while an absent
|
|
1172
|
+
* field means nothing was read and no claim may be made ({@link missingHeaderNote}).
|
|
1173
|
+
*/
|
|
1174
|
+
landmarks?: readonly string[];
|
|
1175
|
+
/**
|
|
1176
|
+
* Whether the test's snapshot showed populated page content (headings, paragraphs, links,
|
|
1177
|
+
* list items, buttons), the other half of the missing-header reading: a page that painted its
|
|
1178
|
+
* main content but no navigation.
|
|
1179
|
+
*/
|
|
1180
|
+
populated?: boolean;
|
|
1122
1181
|
}
|
|
1123
1182
|
/**
|
|
1124
1183
|
* Every failure a run names, grouped by the cause behind it — one group per cause, with the
|
|
@@ -1146,6 +1205,42 @@ export interface CausePageErrors {
|
|
|
1146
1205
|
* @returns The causes, the one with the most tests first.
|
|
1147
1206
|
*/
|
|
1148
1207
|
export declare function failuresByCause(log: string, excluded?: readonly string[]): FailureCause[];
|
|
1208
|
+
/** A landmark role a failed selector requires: `<nav>`/`role=navigation`, `<header>`/`role=banner`. */
|
|
1209
|
+
export type RequiredLandmark = 'navigation' | 'banner';
|
|
1210
|
+
/**
|
|
1211
|
+
* The landmark a selector requires as an ANCESTOR (or names as its own role), or null when it
|
|
1212
|
+
* names no landmark at all (`h1`, `.article-preview`, `a[href="/profile/x"]`).
|
|
1213
|
+
*
|
|
1214
|
+
* @param selector - One CSS selector or `getByRole` role from a failure's call log.
|
|
1215
|
+
* @returns The landmark, or null.
|
|
1216
|
+
*/
|
|
1217
|
+
export declare function requiredLandmark(selector: string): RequiredLandmark | null;
|
|
1218
|
+
/**
|
|
1219
|
+
* The sentence for a run whose navigational elements are all missing from pages that otherwise
|
|
1220
|
+
* painted — the missing shared header the executor must check BEFORE rewriting auth.
|
|
1221
|
+
*
|
|
1222
|
+
* xr-molecule-flash-m193 (+13:54 → +20:00): four failures on `/` — `a[href="/profile/…"]`,
|
|
1223
|
+
* `a.navbar-brand`, `nav a[href="/"]`, `nav .user-pic` — while every `error-context.md` snapshot
|
|
1224
|
+
* showed the feed, sidebar and footer with no navigation at all. `Home.tsx` imported and
|
|
1225
|
+
* re-exported `Navbar` but never rendered it, and `App.tsx` mounted `<Home />` in a bare route.
|
|
1226
|
+
* The cause list named four unrelated symptoms, so the run rewrote `Navbar`'s auth logic and then
|
|
1227
|
+
* the HTTP bond across two whole walks (~6 minutes) instead of mounting the header.
|
|
1228
|
+
*
|
|
1229
|
+
* The reading is per FAILURE and per SNAPSHOT: each failure's own selector must require the
|
|
1230
|
+
* landmark, its own snapshot must have been read AND show populated page content, and that
|
|
1231
|
+
* snapshot must not contain the landmark. Two or more such failures on ONE route (the route a
|
|
1232
|
+
* selector names, e.g. `nav a[href="/"]` → `/`; failures whose selector names none ride along)
|
|
1233
|
+
* are the group. A page that shows the navigation and merely misses a signed-in link is not this
|
|
1234
|
+
* shape — its snapshots contain the landmark, so nothing is said.
|
|
1235
|
+
*
|
|
1236
|
+
* This never stops the run and never claims the page is blank: it is one sentence prepended to
|
|
1237
|
+
* the causes note ({@link failureCausesNote}).
|
|
1238
|
+
*
|
|
1239
|
+
* @param log - The run's output.
|
|
1240
|
+
* @param pageErrors - The page snapshot facts the caller read per failing test.
|
|
1241
|
+
* @returns The sentence, or null when the failures do not share a missing landmark.
|
|
1242
|
+
*/
|
|
1243
|
+
export declare function missingHeaderNote(log: string, pageErrors?: readonly CausePageErrors[]): string | null;
|
|
1149
1244
|
/**
|
|
1150
1245
|
* The one-line-per-cause summary of a finished run's failures, or null when the run named fewer
|
|
1151
1246
|
* than two of them.
|
|
@@ -1179,7 +1274,14 @@ export declare function failureCausesNote(log: string, excluded?: readonly strin
|
|
|
1179
1274
|
log?: string;
|
|
1180
1275
|
config?: string | null;
|
|
1181
1276
|
env?: readonly RunEnvSetting[];
|
|
1182
|
-
}, pageErrors?: readonly CausePageErrors[]
|
|
1277
|
+
}, pageErrors?: readonly CausePageErrors[],
|
|
1278
|
+
/**
|
|
1279
|
+
* Spec files whose selector-contract rows an edit broke since the last whole walk, when the
|
|
1280
|
+
* caller knows them: the narrowed re-run names them beside the failing tests. A green re-run of
|
|
1281
|
+
* the failure alone would certify a tree it never measured, and the specs selecting the
|
|
1282
|
+
* element the edit removed were never walked (xr-molecule-flash-m187 shipped that).
|
|
1283
|
+
*/
|
|
1284
|
+
regressedSpecs?: readonly string[]): string | null;
|
|
1183
1285
|
/**
|
|
1184
1286
|
* The command that re-runs the tests at `locations` the way the run IN FLIGHT ran them: the same
|
|
1185
1287
|
* invocation, in the same directory, narrowed to those tests — or null when the running command
|
package/dist/utilities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
|