playwright-e2e-mcp 0.4.2 → 0.5.1
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 +238 -924
- package/dist/http.d.ts +2 -1
- package/dist/http.js +2 -1
- package/dist/http.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.js +31 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/analyze-history.d.ts +12 -1
- package/dist/tools/analyze-history.js +89 -5
- package/dist/tools/analyze-history.js.map +1 -1
- package/dist/tools/audit-accessibility.d.ts +85 -0
- package/dist/tools/audit-accessibility.js +4 -1
- package/dist/tools/audit-accessibility.js.map +1 -1
- package/dist/tools/audit-performance.d.ts +333 -0
- package/dist/tools/audit-performance.js +377 -0
- package/dist/tools/audit-performance.js.map +1 -0
- package/dist/tools/compare-visual-state.d.ts +84 -0
- package/dist/tools/generate-e2e-test.d.ts +90 -0
- package/dist/tools/generate-e2e-test.js +223 -34
- package/dist/tools/generate-e2e-test.js.map +1 -1
- package/dist/tools/get-failure.js +2 -1
- package/dist/tools/get-failure.js.map +1 -1
- package/dist/tools/inspect-page.d.ts +94 -0
- package/dist/tools/inspect-page.js +42 -5
- package/dist/tools/inspect-page.js.map +1 -1
- package/dist/tools/load-report.d.ts +48 -0
- package/dist/tools/load-report.js +167 -0
- package/dist/tools/load-report.js.map +1 -0
- package/dist/tools/probe-script.d.ts +7 -0
- package/dist/tools/probe-script.js +266 -7
- package/dist/tools/probe-script.js.map +1 -1
- package/dist/tools/shared.d.ts +137 -2
- package/dist/tools/shared.js +176 -9
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/suggest-fix.d.ts +35 -1
- package/dist/tools/suggest-fix.js +197 -17
- package/dist/tools/suggest-fix.js.map +1 -1
- package/dist/tools/validate-selector.d.ts +84 -0
- package/dist/tools/validate-selector.js +7 -1
- package/dist/tools/validate-selector.js.map +1 -1
- package/dist/types/index.d.ts +28 -0
- package/dist/utils/project-detector.js +2 -2
- package/dist/utils/project-detector.js.map +1 -1
- package/dist/utils/report-parser.d.ts +28 -3
- package/dist/utils/report-parser.js +77 -11
- package/dist/utils/report-parser.js.map +1 -1
- package/dist/utils/run-history.d.ts +66 -3
- package/dist/utils/run-history.js +149 -3
- package/dist/utils/run-history.js.map +1 -1
- package/dist/utils/serverless-chromium.d.ts +32 -0
- package/dist/utils/serverless-chromium.js +64 -0
- package/dist/utils/serverless-chromium.js.map +1 -0
- package/package.json +3 -2
- package/skill/playwright-e2e-mcp/SKILL.md +71 -15
- package/skill/playwright-e2e-mcp/references/setup.md +1 -1
- package/skill/playwright-e2e-mcp/references/tools.md +67 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,18 @@
|
|
|
6
6
|
* syntax error, full disk…) `diagnoseOutput` turns raw stdout/stderr
|
|
7
7
|
* into an ErrorKind + actionable hint.
|
|
8
8
|
*/
|
|
9
|
-
import type { DiscoveredTest, ErrorKind, FailureKind, ReportStats, TestFailure, TestOutcome, TestStatus } from '../types/index.js';
|
|
9
|
+
import type { DiscoveredTest, GitInfo, ErrorKind, FailureKind, PlaywrightJsonReport, ReportStats, TestFailure, TestOutcome, TestStatus } from '../types/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* A report written on another machine (a CI job): its absolute paths point
|
|
12
|
+
* at that machine's checkout. They are rebased onto the local project
|
|
13
|
+
* root, and trace archives are also looked for in `traceDirs` (where the
|
|
14
|
+
* job's test-results artifact was unpacked).
|
|
15
|
+
*/
|
|
16
|
+
export interface ForeignReportOptions {
|
|
17
|
+
traceDirs: string[];
|
|
18
|
+
}
|
|
19
|
+
/** The commit a report was produced from, when Playwright recorded it. */
|
|
20
|
+
export declare function reportGitInfo(report: PlaywrightJsonReport): GitInfo | undefined;
|
|
10
21
|
export interface ParsedReport {
|
|
11
22
|
stats: ReportStats | null;
|
|
12
23
|
failures: TestFailure[];
|
|
@@ -19,6 +30,8 @@ export interface ParsedReport {
|
|
|
19
30
|
projects: string[];
|
|
20
31
|
configPath: string | null;
|
|
21
32
|
parseError?: string;
|
|
33
|
+
/** Commit, branch and build link recorded in the report's metadata. */
|
|
34
|
+
git?: GitInfo;
|
|
22
35
|
}
|
|
23
36
|
export interface Diagnosis {
|
|
24
37
|
errorKind: ErrorKind;
|
|
@@ -28,16 +41,28 @@ export interface Diagnosis {
|
|
|
28
41
|
/** Remove ANSI color/control sequences from captured output. */
|
|
29
42
|
export declare function stripAnsi(text: string): string;
|
|
30
43
|
export declare function emptyStats(): ReportStats;
|
|
44
|
+
/**
|
|
45
|
+
* Where a CI trace landed locally: its rebased path, or the same path
|
|
46
|
+
* under one of the artifact folders (with or without its leading
|
|
47
|
+
* `test-results/`, since artifacts are often uploaded from inside it).
|
|
48
|
+
* Only existing files inside the project root count.
|
|
49
|
+
*/
|
|
50
|
+
export declare function findForeignTrace(resolved: string, root: string, traceDirs: string[]): string | undefined;
|
|
31
51
|
export declare function mapStatus(status?: string): TestStatus;
|
|
32
52
|
/** Classify a failure from its message/stack plus normalized status. */
|
|
33
53
|
export declare function classifyFailure(text: string, status: TestStatus): FailureKind;
|
|
34
54
|
/** Parse a JSON report from a raw string. Never throws. */
|
|
35
|
-
export declare function parseReportJson(raw: string, root?: string, maxFailures?: number): ParsedReport;
|
|
55
|
+
export declare function parseReportJson(raw: string, root?: string, maxFailures?: number, foreign?: ForeignReportOptions): ParsedReport;
|
|
56
|
+
/**
|
|
57
|
+
* For a foreign report, the CI checkout is the folder that held the config
|
|
58
|
+
* file; its absolute paths are mapped onto the local root.
|
|
59
|
+
*/
|
|
60
|
+
export declare function foreignRebase(configFile: string | undefined, root: string, foreign: ForeignReportOptions | undefined): (p: string) => string;
|
|
36
61
|
/**
|
|
37
62
|
* Parse an already-deserialized Playwright JSON report into normalized
|
|
38
63
|
* stats, failures, and a flat test listing.
|
|
39
64
|
*/
|
|
40
|
-
export declare function parseReport(report: unknown, root?: string, maxFailures?: number): ParsedReport;
|
|
65
|
+
export declare function parseReport(report: unknown, root?: string, maxFailures?: number, foreign?: ForeignReportOptions): ParsedReport;
|
|
41
66
|
/**
|
|
42
67
|
* Best-effort extraction of a JSON object from mixed text (stdout that
|
|
43
68
|
* interleaves logs with the JSON reporter output).
|
|
@@ -6,10 +6,27 @@
|
|
|
6
6
|
* syntax error, full disk…) `diagnoseOutput` turns raw stdout/stderr
|
|
7
7
|
* into an ErrorKind + actionable hint.
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { isAbsolutePath, isPathInside, normalizePath, relativeToRoot, resolvePath, toNativePath } from './path-utils.js';
|
|
10
11
|
/** Cap so one pathological run cannot produce a megabyte tool payload. */
|
|
11
12
|
const MAX_FAILURES = 25;
|
|
12
13
|
const ANSI_RE = /[\u001B\u009B][[\]()#;?]*(?:(?:(?:[a-zA-Z\d]*(?:;[-a-zA-Z\d/#&.:=?%@~_]*)*)?\u0007)|(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))/g;
|
|
14
|
+
/** The commit a report was produced from, when Playwright recorded it. */
|
|
15
|
+
export function reportGitInfo(report) {
|
|
16
|
+
const meta = report.config?.metadata;
|
|
17
|
+
if (!meta || typeof meta !== 'object')
|
|
18
|
+
return undefined;
|
|
19
|
+
const git = meta.gitCommit && typeof meta.gitCommit === 'object' ? meta.gitCommit : undefined;
|
|
20
|
+
const ci = meta.ci && typeof meta.ci === 'object' ? meta.ci : undefined;
|
|
21
|
+
const str = (v) => (typeof v === 'string' && v.trim() !== '' ? v.trim().slice(0, 200) : undefined);
|
|
22
|
+
const info = {
|
|
23
|
+
commit: str(git?.hash) ?? str(ci?.commitHash),
|
|
24
|
+
branch: str(git?.branch) ?? str(ci?.branch),
|
|
25
|
+
subject: str(git?.subject),
|
|
26
|
+
buildUrl: str(ci?.buildHref),
|
|
27
|
+
};
|
|
28
|
+
return Object.values(info).some((v) => v !== undefined) ? info : undefined;
|
|
29
|
+
}
|
|
13
30
|
/** Remove ANSI color/control sequences from captured output. */
|
|
14
31
|
export function stripAnsi(text) {
|
|
15
32
|
return text.replace(ANSI_RE, '');
|
|
@@ -47,6 +64,26 @@ function flattenOutput(entries) {
|
|
|
47
64
|
const joined = parts.join('\n').trim();
|
|
48
65
|
return joined === '' ? undefined : joined;
|
|
49
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Where a CI trace landed locally: its rebased path, or the same path
|
|
69
|
+
* under one of the artifact folders (with or without its leading
|
|
70
|
+
* `test-results/`, since artifacts are often uploaded from inside it).
|
|
71
|
+
* Only existing files inside the project root count.
|
|
72
|
+
*/
|
|
73
|
+
export function findForeignTrace(resolved, root, traceDirs) {
|
|
74
|
+
const candidates = [resolved];
|
|
75
|
+
const marker = resolved.lastIndexOf('/test-results/');
|
|
76
|
+
const tail = marker >= 0 ? resolved.slice(marker + 1) : resolved.split('/').slice(-2).join('/');
|
|
77
|
+
const inner = tail.startsWith('test-results/') ? tail.slice('test-results/'.length) : tail;
|
|
78
|
+
for (const dir of traceDirs) {
|
|
79
|
+
candidates.push(resolvePath(dir, tail), resolvePath(dir, inner));
|
|
80
|
+
}
|
|
81
|
+
for (const candidate of candidates) {
|
|
82
|
+
if (isPathInside(candidate, root) && existsSync(toNativePath(candidate)))
|
|
83
|
+
return candidate;
|
|
84
|
+
}
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
50
87
|
/** Locate the trace.zip attachment for a failed attempt, if any. */
|
|
51
88
|
function resolveTracePath(attachments, ctx) {
|
|
52
89
|
for (const attachment of attachments ?? []) {
|
|
@@ -55,9 +92,15 @@ function resolveTracePath(attachments, ctx) {
|
|
|
55
92
|
const isTrace = name === 'trace' || name.endsWith('.zip') || contentType.includes('zip') || contentType.includes('trace');
|
|
56
93
|
if (!isTrace || !attachment.path)
|
|
57
94
|
continue;
|
|
58
|
-
const p = normalizePath(attachment.path);
|
|
95
|
+
const p = ctx.rebase(normalizePath(attachment.path));
|
|
59
96
|
const base = ctx.rootDir ?? ctx.root;
|
|
60
97
|
const resolved = isAbsolutePath(p) ? p : resolvePath(base, p);
|
|
98
|
+
if (ctx.foreign) {
|
|
99
|
+
const found = findForeignTrace(resolved, ctx.root, ctx.foreign.traceDirs);
|
|
100
|
+
if (found)
|
|
101
|
+
return found;
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
61
104
|
// The report is project-controlled: only follow trace paths that stay
|
|
62
105
|
// inside the project root, so get-failure cannot be pointed at other files.
|
|
63
106
|
if (!isPathInside(resolved, ctx.root))
|
|
@@ -112,9 +155,10 @@ function normalizeSpecFile(file, ctx) {
|
|
|
112
155
|
// get-failure's next steps, list-tests — needs paths relative to the
|
|
113
156
|
// project root. Rebase: relative → resolve against rootDir, absolute →
|
|
114
157
|
// keep; then relativize against the project root when it is inside.
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
158
|
+
const rebased = ctx.rebase(normalized);
|
|
159
|
+
const absolute = isAbsolutePath(rebased)
|
|
160
|
+
? rebased
|
|
161
|
+
: resolvePath(ctx.rootDir ?? ctx.root, rebased);
|
|
118
162
|
if (isPathInside(absolute, ctx.root))
|
|
119
163
|
return relativeToRoot(ctx.root, absolute);
|
|
120
164
|
return normalized;
|
|
@@ -131,7 +175,9 @@ function walkSpec(spec, prefix, ctx) {
|
|
|
131
175
|
return;
|
|
132
176
|
}
|
|
133
177
|
for (const testCase of cases) {
|
|
134
|
-
|
|
178
|
+
// A config without named projects reports ""; treat it as no project,
|
|
179
|
+
// or re-running with --project= would be rejected.
|
|
180
|
+
const project = testCase.projectName || undefined;
|
|
135
181
|
if (project)
|
|
136
182
|
ctx.projectsSeen.add(project);
|
|
137
183
|
const results = testCase.results ?? [];
|
|
@@ -211,7 +257,7 @@ function mergeStats(reported, computed) {
|
|
|
211
257
|
/* Public API */
|
|
212
258
|
/* ------------------------------------------------------------------ */
|
|
213
259
|
/** Parse a JSON report from a raw string. Never throws. */
|
|
214
|
-
export function parseReportJson(raw, root = '', maxFailures = MAX_FAILURES) {
|
|
260
|
+
export function parseReportJson(raw, root = '', maxFailures = MAX_FAILURES, foreign) {
|
|
215
261
|
let parsed;
|
|
216
262
|
try {
|
|
217
263
|
parsed = JSON.parse(raw);
|
|
@@ -229,13 +275,28 @@ export function parseReportJson(raw, root = '', maxFailures = MAX_FAILURES) {
|
|
|
229
275
|
parseError: `Playwright JSON report could not be parsed: ${err instanceof Error ? err.message : String(err)}`,
|
|
230
276
|
};
|
|
231
277
|
}
|
|
232
|
-
return parseReport(parsed, root, maxFailures);
|
|
278
|
+
return parseReport(parsed, root, maxFailures, foreign);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* For a foreign report, the CI checkout is the folder that held the config
|
|
282
|
+
* file; its absolute paths are mapped onto the local root.
|
|
283
|
+
*/
|
|
284
|
+
export function foreignRebase(configFile, root, foreign) {
|
|
285
|
+
if (!foreign || typeof configFile !== 'string')
|
|
286
|
+
return (p) => p;
|
|
287
|
+
const config = normalizePath(configFile);
|
|
288
|
+
if (!isAbsolutePath(config) || isPathInside(config, root))
|
|
289
|
+
return (p) => p;
|
|
290
|
+
const ciRoot = config.slice(0, config.lastIndexOf('/'));
|
|
291
|
+
if (ciRoot === '')
|
|
292
|
+
return (p) => p;
|
|
293
|
+
return (p) => (p === ciRoot ? root : p.startsWith(`${ciRoot}/`) ? `${root}${p.slice(ciRoot.length)}` : p);
|
|
233
294
|
}
|
|
234
295
|
/**
|
|
235
296
|
* Parse an already-deserialized Playwright JSON report into normalized
|
|
236
297
|
* stats, failures, and a flat test listing.
|
|
237
298
|
*/
|
|
238
|
-
export function parseReport(report, root = '', maxFailures = MAX_FAILURES) {
|
|
299
|
+
export function parseReport(report, root = '', maxFailures = MAX_FAILURES, foreign) {
|
|
239
300
|
const base = {
|
|
240
301
|
stats: null,
|
|
241
302
|
failures: [],
|
|
@@ -256,9 +317,13 @@ export function parseReport(report, root = '', maxFailures = MAX_FAILURES) {
|
|
|
256
317
|
if (!hasSuites && !hasErrors && !hasStats) {
|
|
257
318
|
return { ...base, parseError: 'Playwright report contained no suites, errors, or stats.' };
|
|
258
319
|
}
|
|
320
|
+
const localRoot = normalizePath(root || '.');
|
|
321
|
+
const rebase = foreignRebase(typed.config?.configFile, localRoot, foreign);
|
|
259
322
|
const ctx = {
|
|
260
|
-
root:
|
|
261
|
-
rootDir: typeof typed.config?.rootDir === 'string' ? normalizePath(typed.config.rootDir) : null,
|
|
323
|
+
root: localRoot,
|
|
324
|
+
rootDir: typeof typed.config?.rootDir === 'string' ? rebase(normalizePath(typed.config.rootDir)) : null,
|
|
325
|
+
rebase,
|
|
326
|
+
foreign,
|
|
262
327
|
records: [],
|
|
263
328
|
totalDuration: 0,
|
|
264
329
|
projectsSeen: new Set(),
|
|
@@ -369,6 +434,7 @@ export function parseReport(report, root = '', maxFailures = MAX_FAILURES) {
|
|
|
369
434
|
specCount: totalTestCases,
|
|
370
435
|
projects: [...ctx.projectsSeen],
|
|
371
436
|
configPath,
|
|
437
|
+
git: reportGitInfo(typed),
|
|
372
438
|
};
|
|
373
439
|
}
|
|
374
440
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-parser.js","sourceRoot":"","sources":["../../src/utils/report-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"report-parser.js","sourceRoot":"","sources":["../../src/utils/report-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* The analysis functions are pure (exported for unit tests).
|
|
11
11
|
*/
|
|
12
|
-
import type { FailureKind, RunTestResult, TestStatus } from '../types/index.js';
|
|
12
|
+
import type { FailureKind, GitInfo, RunTestResult, TestStatus } from '../types/index.js';
|
|
13
13
|
export declare const HISTORY_DIR = ".playwright-e2e-mcp";
|
|
14
14
|
export interface HistoryTest {
|
|
15
15
|
file: string;
|
|
@@ -34,12 +34,28 @@ export interface HistoryEntry {
|
|
|
34
34
|
skipped: number;
|
|
35
35
|
} | null;
|
|
36
36
|
tests: HistoryTest[];
|
|
37
|
+
/** The commit the run tested (0.5.0+); `dirty` when the checkout had local changes. */
|
|
38
|
+
commit?: string;
|
|
39
|
+
branch?: string;
|
|
40
|
+
subject?: string;
|
|
41
|
+
dirty?: boolean;
|
|
42
|
+
/** Where the result came from when it was not run here, e.g. a CI build link. */
|
|
43
|
+
buildUrl?: string;
|
|
37
44
|
}
|
|
45
|
+
/** The checked-out commit of `root`, or nothing when it is not a git repository. */
|
|
46
|
+
export declare function localGitInfo(root: string): Promise<(GitInfo & {
|
|
47
|
+
dirty?: boolean;
|
|
48
|
+
}) | undefined>;
|
|
38
49
|
export declare function historyEnabled(): boolean;
|
|
39
50
|
export declare function historyPath(root: string): string;
|
|
40
|
-
export declare function toHistoryEntry(result: RunTestResult, source: string, at?: Date
|
|
51
|
+
export declare function toHistoryEntry(result: RunTestResult, source: string, at?: Date, gitInfo?: GitInfo & {
|
|
52
|
+
dirty?: boolean;
|
|
53
|
+
}): HistoryEntry;
|
|
41
54
|
/** Append a run to the project's history (no-op when disabled or nothing ran). */
|
|
42
|
-
export declare function recordRun(root: string, result: RunTestResult, source: string
|
|
55
|
+
export declare function recordRun(root: string, result: RunTestResult, source: string, options?: {
|
|
56
|
+
at?: Date;
|
|
57
|
+
git?: GitInfo;
|
|
58
|
+
}): Promise<boolean>;
|
|
43
59
|
/** Parse history lines, skipping anything malformed. Oldest first. */
|
|
44
60
|
export declare function parseHistory(text: string): HistoryEntry[];
|
|
45
61
|
export declare function readHistory(root: string, lastRuns: number): Promise<HistoryEntry[]>;
|
|
@@ -101,3 +117,50 @@ export interface FailurePattern {
|
|
|
101
117
|
}
|
|
102
118
|
/** Group failures across runs by kind + normalized error, biggest first. */
|
|
103
119
|
export declare function failurePatterns(entries: HistoryEntry[]): FailurePattern[];
|
|
120
|
+
export interface SlowTest {
|
|
121
|
+
key: string;
|
|
122
|
+
runs: number;
|
|
123
|
+
medianMs: number;
|
|
124
|
+
maxMs: number;
|
|
125
|
+
/** Median of the newest third of runs over the median of the rest (needs 6+ runs). */
|
|
126
|
+
slowdown?: number;
|
|
127
|
+
}
|
|
128
|
+
/** Tests by typical duration (passing runs only, so timeouts do not dominate), slowest first. */
|
|
129
|
+
export declare function slowTests(entries: HistoryEntry[]): SlowTest[];
|
|
130
|
+
export interface TrendDay {
|
|
131
|
+
day: string;
|
|
132
|
+
runs: number;
|
|
133
|
+
/** Test executions that day (one per test per run). */
|
|
134
|
+
executions: number;
|
|
135
|
+
failed: number;
|
|
136
|
+
flaky: number;
|
|
137
|
+
/** (failed + flaky) / executions */
|
|
138
|
+
unstableRate: number;
|
|
139
|
+
/** Distinct tests that failed or passed only on retry that day. */
|
|
140
|
+
unstableTests: number;
|
|
141
|
+
}
|
|
142
|
+
/** One row per UTC day: how many tests failed or flaked, oldest first. */
|
|
143
|
+
export declare function dailyTrend(entries: HistoryEntry[]): TrendDay[];
|
|
144
|
+
export interface BreakingCommit {
|
|
145
|
+
test: string;
|
|
146
|
+
/** Last commit on which the test passed before its current bad streak. */
|
|
147
|
+
lastGood?: {
|
|
148
|
+
commit?: string;
|
|
149
|
+
at: string;
|
|
150
|
+
};
|
|
151
|
+
/** First run of the current bad streak. */
|
|
152
|
+
firstBad: {
|
|
153
|
+
commit?: string;
|
|
154
|
+
subject?: string;
|
|
155
|
+
at: string;
|
|
156
|
+
status: TestStatus;
|
|
157
|
+
};
|
|
158
|
+
/** How the test has behaved since: 'failing' every run, or 'flaky' (back and forth). */
|
|
159
|
+
since: 'failing' | 'flaky';
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* For each test that is failing or flaky now, the commit where that began:
|
|
163
|
+
* the first bad run after its last passing streak (at least two passes in
|
|
164
|
+
* a row, so one lucky pass of a flaky test does not count as good).
|
|
165
|
+
*/
|
|
166
|
+
export declare function breakingCommits(entries: HistoryEntry[]): BreakingCommit[];
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* The analysis functions are pure (exported for unit tests).
|
|
11
11
|
*/
|
|
12
|
+
import { execFile } from 'node:child_process';
|
|
12
13
|
import { appendFile, lstat, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
13
14
|
import { PlaywrightMcpError } from '../types/index.js';
|
|
14
15
|
import { assertRealPathInside, joinProjectPath, toNativePath, writeFileInsideRoot } from './path-utils.js';
|
|
@@ -16,6 +17,31 @@ export const HISTORY_DIR = '.playwright-e2e-mcp';
|
|
|
16
17
|
const HISTORY_FILE = 'history.jsonl';
|
|
17
18
|
const MAX_ENTRIES = 500;
|
|
18
19
|
const MAX_TESTS_PER_ENTRY = 2_000;
|
|
20
|
+
function git(args, cwd) {
|
|
21
|
+
return new Promise((resolve) => {
|
|
22
|
+
execFile('git', args, { cwd, timeout: 3_000, windowsHide: true, maxBuffer: 1_000_000 }, (err, stdout) => {
|
|
23
|
+
resolve(err ? undefined : String(stdout).trim());
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** The checked-out commit of `root`, or nothing when it is not a git repository. */
|
|
28
|
+
export async function localGitInfo(root) {
|
|
29
|
+
const native = toNativePath(root);
|
|
30
|
+
const commit = await git(['rev-parse', 'HEAD'], native);
|
|
31
|
+
if (!commit || !/^[0-9a-f]{7,64}$/i.test(commit))
|
|
32
|
+
return undefined;
|
|
33
|
+
const [branch, subject, status] = await Promise.all([
|
|
34
|
+
git(['rev-parse', '--abbrev-ref', 'HEAD'], native),
|
|
35
|
+
git(['log', '-1', '--pretty=%s'], native),
|
|
36
|
+
git(['status', '--porcelain', '--untracked-files=no'], native),
|
|
37
|
+
]);
|
|
38
|
+
return {
|
|
39
|
+
commit,
|
|
40
|
+
branch: branch && branch !== 'HEAD' ? branch : undefined,
|
|
41
|
+
subject: subject ? subject.slice(0, 200) : undefined,
|
|
42
|
+
dirty: status ? status.length > 0 : undefined,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
19
45
|
export function historyEnabled() {
|
|
20
46
|
const flag = (process.env.PW_MCP_HISTORY ?? '').trim().toLowerCase();
|
|
21
47
|
return !(flag === '0' || flag === 'false' || flag === 'off');
|
|
@@ -23,7 +49,7 @@ export function historyEnabled() {
|
|
|
23
49
|
export function historyPath(root) {
|
|
24
50
|
return joinProjectPath(root, HISTORY_DIR, HISTORY_FILE);
|
|
25
51
|
}
|
|
26
|
-
export function toHistoryEntry(result, source, at = new Date()) {
|
|
52
|
+
export function toHistoryEntry(result, source, at = new Date(), gitInfo) {
|
|
27
53
|
const tests = (result.outcomes ?? []).slice(0, MAX_TESTS_PER_ENTRY).map((o) => {
|
|
28
54
|
const test = { file: o.file, title: o.title, status: o.status };
|
|
29
55
|
if (o.project)
|
|
@@ -47,14 +73,21 @@ export function toHistoryEntry(result, source, at = new Date()) {
|
|
|
47
73
|
? { passed: result.stats.expected, failed: result.stats.unexpected, flaky: result.stats.flaky, skipped: result.stats.skipped }
|
|
48
74
|
: null,
|
|
49
75
|
tests,
|
|
76
|
+
...(gitInfo?.commit ? { commit: gitInfo.commit } : {}),
|
|
77
|
+
...(gitInfo?.branch ? { branch: gitInfo.branch } : {}),
|
|
78
|
+
...(gitInfo?.subject ? { subject: gitInfo.subject } : {}),
|
|
79
|
+
...(gitInfo?.dirty ? { dirty: true } : {}),
|
|
80
|
+
...(gitInfo?.buildUrl ? { buildUrl: gitInfo.buildUrl } : {}),
|
|
50
81
|
};
|
|
51
82
|
}
|
|
52
83
|
/** Append a run to the project's history (no-op when disabled or nothing ran). */
|
|
53
|
-
export async function recordRun(root, result, source) {
|
|
84
|
+
export async function recordRun(root, result, source, options = {}) {
|
|
54
85
|
if (!historyEnabled())
|
|
55
86
|
return false;
|
|
56
87
|
if (!result.outcomes || result.outcomes.length === 0)
|
|
57
88
|
return false;
|
|
89
|
+
// A run done here tested the working tree; an imported one says which commit it tested.
|
|
90
|
+
const gitInfo = options.git ?? (await localGitInfo(root).catch(() => undefined));
|
|
58
91
|
const dir = joinProjectPath(root, HISTORY_DIR);
|
|
59
92
|
await mkdir(toNativePath(dir), { recursive: true });
|
|
60
93
|
// The folder could be a symlink planted in the project; keep writes inside.
|
|
@@ -68,7 +101,7 @@ export async function recordRun(root, result, source) {
|
|
|
68
101
|
if (info?.isSymbolicLink()) {
|
|
69
102
|
throw new PlaywrightMcpError('Refusing to write run history through a symlink', 'INVALID_PATH');
|
|
70
103
|
}
|
|
71
|
-
await appendFile(toNativePath(file), `${JSON.stringify(toHistoryEntry(result, source))}\n`, 'utf8');
|
|
104
|
+
await appendFile(toNativePath(file), `${JSON.stringify(toHistoryEntry(result, source, options.at, gitInfo))}\n`, 'utf8');
|
|
72
105
|
// Trim now and then, not on every write.
|
|
73
106
|
if (info && info.size > 4_000_000) {
|
|
74
107
|
const lines = (await readFile(toNativePath(file), 'utf8')).split('\n').filter((line) => line.trim() !== '');
|
|
@@ -216,4 +249,117 @@ export function failurePatterns(entries) {
|
|
|
216
249
|
}
|
|
217
250
|
return [...map.values()].sort((a, b) => b.count - a.count || b.tests.length - a.tests.length);
|
|
218
251
|
}
|
|
252
|
+
/* ------------------------------------------------------------------ */
|
|
253
|
+
/* Slow tests, trend, and the commit that broke a test */
|
|
254
|
+
/* ------------------------------------------------------------------ */
|
|
255
|
+
function median(values) {
|
|
256
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
257
|
+
const mid = Math.floor(sorted.length / 2);
|
|
258
|
+
return sorted.length % 2 === 1 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
|
|
259
|
+
}
|
|
260
|
+
/** Tests by typical duration (passing runs only, so timeouts do not dominate), slowest first. */
|
|
261
|
+
export function slowTests(entries) {
|
|
262
|
+
const map = new Map();
|
|
263
|
+
for (const entry of entries) {
|
|
264
|
+
for (const test of entry.tests) {
|
|
265
|
+
if (test.ms === undefined || (test.status !== 'passed' && test.status !== 'flaky'))
|
|
266
|
+
continue;
|
|
267
|
+
const key = testKey(test);
|
|
268
|
+
const list = map.get(key) ?? [];
|
|
269
|
+
list.push(test.ms);
|
|
270
|
+
map.set(key, list);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
const out = [];
|
|
274
|
+
for (const [key, ms] of map) {
|
|
275
|
+
const item = { key, runs: ms.length, medianMs: Math.round(median(ms)), maxMs: Math.max(...ms) };
|
|
276
|
+
if (ms.length >= 6) {
|
|
277
|
+
const cut = Math.floor((ms.length * 2) / 3);
|
|
278
|
+
const before = median(ms.slice(0, cut));
|
|
279
|
+
if (before > 0)
|
|
280
|
+
item.slowdown = Math.round((median(ms.slice(cut)) / before) * 100) / 100;
|
|
281
|
+
}
|
|
282
|
+
out.push(item);
|
|
283
|
+
}
|
|
284
|
+
return out.sort((a, b) => b.medianMs - a.medianMs || a.key.localeCompare(b.key));
|
|
285
|
+
}
|
|
286
|
+
/** One row per UTC day: how many tests failed or flaked, oldest first. */
|
|
287
|
+
export function dailyTrend(entries) {
|
|
288
|
+
const days = new Map();
|
|
289
|
+
for (const entry of entries) {
|
|
290
|
+
const day = entry.at.slice(0, 10);
|
|
291
|
+
const slot = days.get(day) ?? { runs: 0, executions: 0, failed: 0, flaky: 0, tests: new Set() };
|
|
292
|
+
slot.runs += 1;
|
|
293
|
+
for (const test of entry.tests) {
|
|
294
|
+
if (test.status === 'skipped' || test.status === 'unknown')
|
|
295
|
+
continue;
|
|
296
|
+
slot.executions += 1;
|
|
297
|
+
if (FAILED.has(test.status))
|
|
298
|
+
slot.failed += 1;
|
|
299
|
+
if (test.status === 'flaky')
|
|
300
|
+
slot.flaky += 1;
|
|
301
|
+
if (test.status !== 'passed')
|
|
302
|
+
slot.tests.add(testKey(test));
|
|
303
|
+
}
|
|
304
|
+
days.set(day, slot);
|
|
305
|
+
}
|
|
306
|
+
return [...days.entries()]
|
|
307
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
308
|
+
.map(([day, d]) => ({
|
|
309
|
+
day,
|
|
310
|
+
runs: d.runs,
|
|
311
|
+
executions: d.executions,
|
|
312
|
+
failed: d.failed,
|
|
313
|
+
flaky: d.flaky,
|
|
314
|
+
unstableRate: d.executions > 0 ? (d.failed + d.flaky) / d.executions : 0,
|
|
315
|
+
unstableTests: d.tests.size,
|
|
316
|
+
}));
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* For each test that is failing or flaky now, the commit where that began:
|
|
320
|
+
* the first bad run after its last passing streak (at least two passes in
|
|
321
|
+
* a row, so one lucky pass of a flaky test does not count as good).
|
|
322
|
+
*/
|
|
323
|
+
export function breakingCommits(entries) {
|
|
324
|
+
const runs = new Map();
|
|
325
|
+
for (const entry of entries) {
|
|
326
|
+
for (const test of entry.tests) {
|
|
327
|
+
if (test.status === 'skipped' || test.status === 'unknown')
|
|
328
|
+
continue;
|
|
329
|
+
const key = testKey(test);
|
|
330
|
+
const list = runs.get(key) ?? [];
|
|
331
|
+
list.push({ status: test.status, entry });
|
|
332
|
+
runs.set(key, list);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
const out = [];
|
|
336
|
+
for (const [test, list] of runs) {
|
|
337
|
+
if (!list.some((r) => r.status !== 'passed'))
|
|
338
|
+
continue;
|
|
339
|
+
// The newest stretch of two or more passes ends where the bad period starts.
|
|
340
|
+
let goodEnd = -1;
|
|
341
|
+
for (let i = list.length - 1; i >= 1; i -= 1) {
|
|
342
|
+
if (list[i].status === 'passed' && list[i - 1].status === 'passed') {
|
|
343
|
+
goodEnd = i;
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
const firstBadIndex = list.findIndex((r, i) => i > goodEnd && r.status !== 'passed');
|
|
348
|
+
if (firstBadIndex < 0)
|
|
349
|
+
continue; // healthy again since its last bad run
|
|
350
|
+
const tail = list.slice(firstBadIndex);
|
|
351
|
+
const lastStatus = list[list.length - 1].status;
|
|
352
|
+
const allBad = tail.every((r) => FAILED.has(r.status));
|
|
353
|
+
if (lastStatus === 'passed' && tail.filter((r) => r.status !== 'passed').length < 2)
|
|
354
|
+
continue;
|
|
355
|
+
const bad = list[firstBadIndex];
|
|
356
|
+
out.push({
|
|
357
|
+
test,
|
|
358
|
+
lastGood: goodEnd >= 0 ? { commit: list[goodEnd].entry.commit, at: list[goodEnd].entry.at } : undefined,
|
|
359
|
+
firstBad: { commit: bad.entry.commit, subject: bad.entry.subject, at: bad.entry.at, status: bad.status },
|
|
360
|
+
since: allBad ? 'failing' : 'flaky',
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
return out.sort((a, b) => b.firstBad.at.localeCompare(a.firstBad.at) || a.test.localeCompare(b.test));
|
|
364
|
+
}
|
|
219
365
|
//# sourceMappingURL=run-history.js.map
|