playwright-e2e-mcp 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -8
- package/dist/cli/ci.js +3 -0
- package/dist/cli/ci.js.map +1 -1
- package/dist/cli/guard.d.ts +11 -0
- package/dist/cli/guard.js +80 -0
- package/dist/cli/guard.js.map +1 -0
- package/dist/cli/upload.d.ts +14 -0
- package/dist/cli/upload.js +81 -0
- package/dist/cli/upload.js.map +1 -0
- package/dist/http.d.ts +1 -1
- package/dist/http.js +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.js +74 -8
- package/dist/server.js.map +1 -1
- package/dist/tools/analyze-history.d.ts +15 -0
- package/dist/tools/analyze-history.js +44 -9
- package/dist/tools/analyze-history.js.map +1 -1
- package/dist/tools/audit-accessibility.d.ts +3 -0
- package/dist/tools/audit-performance.d.ts +3 -0
- package/dist/tools/audit-performance.js +1 -1
- package/dist/tools/audit-performance.js.map +1 -1
- package/dist/tools/check-test-change.d.ts +44 -0
- package/dist/tools/check-test-change.js +132 -0
- package/dist/tools/check-test-change.js.map +1 -0
- package/dist/tools/compare-visual-state.d.ts +3 -0
- package/dist/tools/generate-e2e-test.js +1 -1
- package/dist/tools/generate-e2e-test.js.map +1 -1
- package/dist/tools/get-run-status.js +8 -2
- package/dist/tools/get-run-status.js.map +1 -1
- package/dist/tools/inspect-page.d.ts +3 -0
- package/dist/tools/inspect-page.js +9 -5
- package/dist/tools/inspect-page.js.map +1 -1
- package/dist/tools/probe-script.js +158 -10
- package/dist/tools/probe-script.js.map +1 -1
- package/dist/tools/quarantine.d.ts +61 -0
- package/dist/tools/quarantine.js +133 -0
- package/dist/tools/quarantine.js.map +1 -0
- package/dist/tools/run-test.d.ts +10 -1
- package/dist/tools/run-test.js +36 -5
- package/dist/tools/run-test.js.map +1 -1
- package/dist/tools/save-login.d.ts +142 -0
- package/dist/tools/save-login.js +264 -0
- package/dist/tools/save-login.js.map +1 -0
- package/dist/tools/shared.d.ts +30 -1
- package/dist/tools/shared.js +51 -27
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/structured.d.ts +16 -1
- package/dist/tools/structured.js +14 -1
- package/dist/tools/structured.js.map +1 -1
- package/dist/tools/suggest-fix.js +1 -1
- package/dist/tools/suggest-fix.js.map +1 -1
- package/dist/tools/validate-selector.d.ts +6 -0
- package/dist/tools/validate-selector.js +28 -5
- package/dist/tools/validate-selector.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/locator-expr.d.ts +3 -1
- package/dist/utils/locator-expr.js +25 -7
- package/dist/utils/locator-expr.js.map +1 -1
- package/dist/utils/pro-client.d.ts +29 -0
- package/dist/utils/pro-client.js +114 -0
- package/dist/utils/pro-client.js.map +1 -0
- package/dist/utils/quarantine.d.ts +64 -0
- package/dist/utils/quarantine.js +106 -0
- package/dist/utils/quarantine.js.map +1 -0
- package/dist/utils/test-change-guard.d.ts +69 -0
- package/dist/utils/test-change-guard.js +391 -0
- package/dist/utils/test-change-guard.js.map +1 -0
- package/dist/utils/totp.d.ts +26 -0
- package/dist/utils/totp.js +84 -0
- package/dist/utils/totp.js.map +1 -0
- package/package.json +1 -1
- package/skill/playwright-e2e-mcp/SKILL.md +46 -7
- package/skill/playwright-e2e-mcp/references/setup.md +7 -1
- package/skill/playwright-e2e-mcp/references/tools.md +43 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool — quarantine: keep a flaky test running and reported while its
|
|
3
|
+
* failures stop blocking the build, with an owner, a reason and an expiry
|
|
4
|
+
* date (default 14 days, at most 90). run-test and the `ci` command read
|
|
5
|
+
* the list: a quarantined failure is reported but does not fail the run;
|
|
6
|
+
* once the entry expires it blocks again.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import type { ToolContext, ToolResponse } from '../types/index.js';
|
|
10
|
+
declare const quarantineInput: z.ZodObject<{
|
|
11
|
+
action: z.ZodOptional<z.ZodEnum<{
|
|
12
|
+
add: "add";
|
|
13
|
+
list: "list";
|
|
14
|
+
remove: "remove";
|
|
15
|
+
}>>;
|
|
16
|
+
test: z.ZodOptional<z.ZodString>;
|
|
17
|
+
file: z.ZodOptional<z.ZodString>;
|
|
18
|
+
title: z.ZodOptional<z.ZodString>;
|
|
19
|
+
index: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
owner: z.ZodOptional<z.ZodString>;
|
|
21
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
22
|
+
days: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export type QuarantineInput = z.infer<typeof quarantineInput>;
|
|
26
|
+
export declare const quarantineSchema: z.ZodObject<{
|
|
27
|
+
action: z.ZodOptional<z.ZodEnum<{
|
|
28
|
+
add: "add";
|
|
29
|
+
list: "list";
|
|
30
|
+
remove: "remove";
|
|
31
|
+
}>>;
|
|
32
|
+
test: z.ZodOptional<z.ZodString>;
|
|
33
|
+
file: z.ZodOptional<z.ZodString>;
|
|
34
|
+
title: z.ZodOptional<z.ZodString>;
|
|
35
|
+
index: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
owner: z.ZodOptional<z.ZodString>;
|
|
37
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
38
|
+
days: z.ZodOptional<z.ZodNumber>;
|
|
39
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export declare const quarantineTool: {
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
inputSchema: z.ZodObject<{
|
|
45
|
+
action: z.ZodOptional<z.ZodEnum<{
|
|
46
|
+
add: "add";
|
|
47
|
+
list: "list";
|
|
48
|
+
remove: "remove";
|
|
49
|
+
}>>;
|
|
50
|
+
test: z.ZodOptional<z.ZodString>;
|
|
51
|
+
file: z.ZodOptional<z.ZodString>;
|
|
52
|
+
title: z.ZodOptional<z.ZodString>;
|
|
53
|
+
index: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
owner: z.ZodOptional<z.ZodString>;
|
|
55
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
56
|
+
days: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
handler: (args: QuarantineInput, ctx: ToolContext) => Promise<ToolResponse>;
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool — quarantine: keep a flaky test running and reported while its
|
|
3
|
+
* failures stop blocking the build, with an owner, a reason and an expiry
|
|
4
|
+
* date (default 14 days, at most 90). run-test and the `ci` command read
|
|
5
|
+
* the list: a quarantined failure is reported but does not fail the run;
|
|
6
|
+
* once the entry expires it blocks again.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import { PlaywrightMcpError } from '../types/index.js';
|
|
10
|
+
import { normalizePath, relativeToRoot, sanitizeUserPath } from '../utils/path-utils.js';
|
|
11
|
+
import { addDays, DEFAULT_QUARANTINE_DAYS, isExpired, matchesEntry, MAX_QUARANTINE_DAYS, QUARANTINE_FILE, readQuarantine, today, writeQuarantine, } from '../utils/quarantine.js';
|
|
12
|
+
import { readHistory, testStats } from '../utils/run-history.js';
|
|
13
|
+
import { guard, markdownCell, resolveProjectRoot, toolText } from './shared.js';
|
|
14
|
+
const quarantineInput = z.object({
|
|
15
|
+
action: z.enum(['list', 'add', 'remove']).optional().describe("'list' (default), 'add' or 'remove'"),
|
|
16
|
+
test: z
|
|
17
|
+
.string()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("The test as 'file › title' (as get-failure and analyze-history print it), or use file + title"),
|
|
20
|
+
file: z.string().optional().describe('Spec file, relative to the project'),
|
|
21
|
+
title: z.string().optional().describe("Test title, or its last parts ('Checkout › pays by card')"),
|
|
22
|
+
index: z.number().int().min(1).optional().describe('add: the Nth failure of the last run instead of test/file/title'),
|
|
23
|
+
owner: z.string().min(1).max(80).optional().describe('add: who will fix it (name or @handle)'),
|
|
24
|
+
reason: z.string().min(3).max(300).optional().describe('add: why it is flaky, or the issue link'),
|
|
25
|
+
days: z.number().int().min(1).max(MAX_QUARANTINE_DAYS).optional().describe(`add: how long it counts (default ${DEFAULT_QUARANTINE_DAYS}, max ${MAX_QUARANTINE_DAYS})`),
|
|
26
|
+
projectRoot: z.string().optional().describe('Project directory (default: server root)'),
|
|
27
|
+
});
|
|
28
|
+
export const quarantineSchema = quarantineInput;
|
|
29
|
+
function target(args, root, ctx) {
|
|
30
|
+
if (args.index !== undefined) {
|
|
31
|
+
const last = ctx.store.lastRun;
|
|
32
|
+
const failure = last?.projectRoot === root ? last.result.failures[args.index - 1] : undefined;
|
|
33
|
+
if (!failure) {
|
|
34
|
+
throw new PlaywrightMcpError(`No failure #${args.index} in the last run`, 'INVALID_INPUT', {
|
|
35
|
+
hint: 'Run the tests with run-test first, or name the test with test or file + title.',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return { file: failure.file, title: withoutFilePrefix(failure.file, failure.title) };
|
|
39
|
+
}
|
|
40
|
+
let file = args.file;
|
|
41
|
+
let title = args.title;
|
|
42
|
+
if (args.test) {
|
|
43
|
+
const at = args.test.indexOf(' › ');
|
|
44
|
+
if (at < 0)
|
|
45
|
+
throw new PlaywrightMcpError(`test must look like 'file › title': ${args.test}`, 'INVALID_INPUT');
|
|
46
|
+
file = args.test.slice(0, at);
|
|
47
|
+
title = args.test.slice(at + 3).replace(/ \[[^\]]+\]$/, '');
|
|
48
|
+
}
|
|
49
|
+
if (!file || !title) {
|
|
50
|
+
throw new PlaywrightMcpError('Name the test', 'INVALID_INPUT', { hint: "Pass test ('tests/cart.spec.ts › adds an item'), file + title, or index." });
|
|
51
|
+
}
|
|
52
|
+
const rel = relativeToRoot(root, sanitizeUserPath(normalizePath(file), root));
|
|
53
|
+
return { file: rel, title: withoutFilePrefix(rel, title.trim()) };
|
|
54
|
+
}
|
|
55
|
+
/** Reported titles start with the spec's file name ('cart.spec.ts › adds'); the entry keeps the rest. */
|
|
56
|
+
function withoutFilePrefix(file, title) {
|
|
57
|
+
const prefix = `${file.split('/').pop()} › `;
|
|
58
|
+
return title.startsWith(prefix) ? title.slice(prefix.length) : title;
|
|
59
|
+
}
|
|
60
|
+
/** The entry for this test, however much of the title path either side names. */
|
|
61
|
+
function findEntry(entries, test) {
|
|
62
|
+
return entries.find((e) => matchesEntry(e, test) || matchesEntry({ ...e, title: test.title }, { file: e.file, title: e.title }));
|
|
63
|
+
}
|
|
64
|
+
function renderList(entries, note) {
|
|
65
|
+
const lines = [];
|
|
66
|
+
if (note)
|
|
67
|
+
lines.push(note, '');
|
|
68
|
+
if (entries.length === 0) {
|
|
69
|
+
lines.push('## 🧊 Quarantine is empty', '', 'Add a flaky test with `action: "add"`, an owner and a reason. Its failures stop blocking runs until the entry expires.');
|
|
70
|
+
return lines.join('\n');
|
|
71
|
+
}
|
|
72
|
+
const expired = entries.filter((e) => isExpired(e));
|
|
73
|
+
lines.push(`## 🧊 ${entries.length} quarantined test${entries.length === 1 ? '' : 's'}${expired.length ? ` · ⏰ ${expired.length} expired` : ''}`, '');
|
|
74
|
+
lines.push('| Test | Owner | Until | Reason |', '| --- | --- | --- | --- |');
|
|
75
|
+
for (const e of entries) {
|
|
76
|
+
lines.push(`| \`${markdownCell(e.file)}\` › ${markdownCell(e.title)} | ${markdownCell(e.owner)} | ${isExpired(e) ? `⏰ ${e.until}` : e.until} | ${markdownCell(e.reason)} |`);
|
|
77
|
+
}
|
|
78
|
+
lines.push('', `Stored in \`${QUARANTINE_FILE}\`: commit it so CI and the team use the same list. Expired entries block again.`);
|
|
79
|
+
return lines.join('\n');
|
|
80
|
+
}
|
|
81
|
+
export const quarantineTool = {
|
|
82
|
+
name: 'quarantine',
|
|
83
|
+
description: "Quarantine flaky tests: they keep running and being reported, but their failures stop failing run-test and the ci command until the entry expires (default 14 days, max 90). add needs owner and reason; list shows what is quarantined and what expired; remove ends it. Stored in playwright-quarantine.json (commit it).",
|
|
84
|
+
inputSchema: quarantineSchema,
|
|
85
|
+
handler: async (args, ctx) => guard('quarantine', async () => {
|
|
86
|
+
const root = await resolveProjectRoot(args.projectRoot, ctx);
|
|
87
|
+
const action = args.action ?? 'list';
|
|
88
|
+
const list = await readQuarantine(root);
|
|
89
|
+
if (action === 'list') {
|
|
90
|
+
return toolText(renderList(list.entries), { status: 'listed', total: list.entries.length });
|
|
91
|
+
}
|
|
92
|
+
if (ctx.restricted) {
|
|
93
|
+
throw new PlaywrightMcpError('Changing the quarantine is not available on this server', 'INVALID_PATH', {
|
|
94
|
+
hint: 'It writes playwright-quarantine.json in the project. Run the server locally.',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
const test = target(args, root, ctx);
|
|
98
|
+
const existing = findEntry(list.entries, test);
|
|
99
|
+
if (action === 'remove') {
|
|
100
|
+
if (!existing) {
|
|
101
|
+
return toolText(renderList(list.entries, `> Nothing to remove: \`${test.file}\` › ${test.title} is not quarantined.`), { status: 'unchanged', total: list.entries.length });
|
|
102
|
+
}
|
|
103
|
+
list.entries = list.entries.filter((e) => e !== existing);
|
|
104
|
+
await writeQuarantine(root, list);
|
|
105
|
+
return toolText(renderList(list.entries, `> ✅ Removed \`${existing.file}\` › ${existing.title}: its failures block runs again.`), { status: 'removed', total: list.entries.length });
|
|
106
|
+
}
|
|
107
|
+
if (!args.owner || !args.reason) {
|
|
108
|
+
throw new PlaywrightMcpError('add needs owner and reason', 'INVALID_INPUT', {
|
|
109
|
+
hint: 'A quarantine without an owner is a skip nobody fixes. Name who will fix it and why it is flaky (or an issue link).',
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
const days = args.days ?? DEFAULT_QUARANTINE_DAYS;
|
|
113
|
+
const entry = {
|
|
114
|
+
file: test.file,
|
|
115
|
+
title: test.title,
|
|
116
|
+
owner: args.owner.trim(),
|
|
117
|
+
reason: args.reason.trim(),
|
|
118
|
+
until: addDays(today(), days),
|
|
119
|
+
added: existing?.added ?? today(),
|
|
120
|
+
};
|
|
121
|
+
list.entries = [...list.entries.filter((e) => e !== existing), entry];
|
|
122
|
+
await writeQuarantine(root, list);
|
|
123
|
+
// How unstable has it been? The local history answers if it has the test.
|
|
124
|
+
const history = await readHistory(root, 50).catch(() => []);
|
|
125
|
+
const stats = testStats(history).find((s) => matchesEntry(entry, s));
|
|
126
|
+
const evidence = stats
|
|
127
|
+
? `\n\n**History:** \`${stats.strip}\` · ${Math.round(stats.failRate * 100)}% of the last ${stats.runs} runs failed or needed a retry.`
|
|
128
|
+
: '';
|
|
129
|
+
const note = `> ✅ ${existing ? 'Extended' : 'Quarantined'} \`${entry.file}\` › ${entry.title} until ${entry.until} (owner ${entry.owner}). It still runs; its failures no longer fail the run.${evidence}`;
|
|
130
|
+
return toolText(renderList(list.entries, note), { status: existing ? 'extended' : 'added', total: list.entries.length });
|
|
131
|
+
}),
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=quarantine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quarantine.js","sourceRoot":"","sources":["../../src/tools/quarantine.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/run-test.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Tool 1 — run-test: execute Playwright tests and report structured
|
|
3
3
|
* results (stats, failures, diagnostics, hints).
|
|
4
4
|
*/
|
|
5
|
+
import type { QuarantineSplit } from '../utils/quarantine.js';
|
|
5
6
|
import { z } from 'zod';
|
|
6
7
|
import type { RunTestResult, TestFailure, ToolContext, ToolResponse } from '../types/index.js';
|
|
7
8
|
declare const runTestInput: z.ZodObject<{
|
|
@@ -58,7 +59,15 @@ export interface FailureCluster {
|
|
|
58
59
|
* tests the same way, and is fixed once.
|
|
59
60
|
*/
|
|
60
61
|
export declare function clusterFailures(failures: TestFailure[]): FailureCluster[];
|
|
61
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Did the run pass once quarantined failures are set aside? Only test
|
|
64
|
+
* failures can be quarantined: a crash, a timeout or a config error still
|
|
65
|
+
* fails the run.
|
|
66
|
+
*/
|
|
67
|
+
export declare function passesWithQuarantine(result: RunTestResult, split: QuarantineSplit | undefined): boolean;
|
|
68
|
+
/** Split a run's failures by the project's quarantine list; undefined when there is none. */
|
|
69
|
+
export declare function quarantineSplit(root: string, result: RunTestResult): Promise<QuarantineSplit | undefined>;
|
|
70
|
+
export declare function renderRunResult(result: RunTestResult, root: string, split?: QuarantineSplit): string;
|
|
62
71
|
export declare const runTestTool: {
|
|
63
72
|
name: string;
|
|
64
73
|
description: string;
|
package/dist/tools/run-test.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Tool 1 — run-test: execute Playwright tests and report structured
|
|
3
3
|
* results (stats, failures, diagnostics, hints).
|
|
4
4
|
*/
|
|
5
|
+
import { quarantineLines, readQuarantine, splitFailures } from '../utils/quarantine.js';
|
|
5
6
|
import { z } from 'zod';
|
|
6
7
|
import { PlaywrightMcpError } from '../types/index.js';
|
|
7
8
|
import { detectProject, missingPlaywrightMessage } from '../utils/project-detector.js';
|
|
@@ -113,15 +114,38 @@ function renderFailures(failures) {
|
|
|
113
114
|
}
|
|
114
115
|
return lines;
|
|
115
116
|
}
|
|
116
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Did the run pass once quarantined failures are set aside? Only test
|
|
119
|
+
* failures can be quarantined: a crash, a timeout or a config error still
|
|
120
|
+
* fails the run.
|
|
121
|
+
*/
|
|
122
|
+
export function passesWithQuarantine(result, split) {
|
|
123
|
+
if (result.ok)
|
|
124
|
+
return true;
|
|
125
|
+
if (!split || split.quarantined.length === 0 || split.blocking.length > 0)
|
|
126
|
+
return false;
|
|
127
|
+
return !result.timedOut && !result.errorKind && !result.partial && !result.failuresTruncated;
|
|
128
|
+
}
|
|
129
|
+
/** Split a run's failures by the project's quarantine list; undefined when there is none. */
|
|
130
|
+
export async function quarantineSplit(root, result) {
|
|
131
|
+
if (result.failures.length === 0)
|
|
132
|
+
return undefined;
|
|
133
|
+
const list = await readQuarantine(root).catch(() => undefined);
|
|
134
|
+
if (!list || list.entries.length === 0)
|
|
135
|
+
return undefined;
|
|
136
|
+
return splitFailures(result.failures, list);
|
|
137
|
+
}
|
|
138
|
+
export function renderRunResult(result, root, split) {
|
|
117
139
|
const flakyCount = result.stats?.flaky ?? 0;
|
|
118
140
|
const status = result.ok
|
|
119
141
|
? flakyCount > 0
|
|
120
142
|
? `✅ PASSED (${flakyCount} flaky)`
|
|
121
143
|
: '✅ PASSED'
|
|
122
|
-
: result
|
|
123
|
-
? '
|
|
124
|
-
:
|
|
144
|
+
: passesWithQuarantine(result, split)
|
|
145
|
+
? `✅ PASSED (${split.quarantined.length} quarantined failure${split.quarantined.length === 1 ? '' : 's'})`
|
|
146
|
+
: result.timedOut
|
|
147
|
+
? '⏱️ KILLED (timeout)'
|
|
148
|
+
: '❌ FAILED';
|
|
125
149
|
const lines = [`## Playwright run — ${status}`, ''];
|
|
126
150
|
lines.push(`**Command:** \`${result.command}\``);
|
|
127
151
|
const meta = [
|
|
@@ -149,6 +173,8 @@ export function renderRunResult(result, root) {
|
|
|
149
173
|
if (flakyCount > 0) {
|
|
150
174
|
lines.push(`> ⚠️ **${flakyCount} flaky test(s)** failed first but passed on the automatic retry. Re-run to confirm they are stable before trusting them.`, '');
|
|
151
175
|
}
|
|
176
|
+
if (split)
|
|
177
|
+
lines.push(...quarantineLines(split));
|
|
152
178
|
if (result.failures.length > 0) {
|
|
153
179
|
const more = result.failuresTruncated ? ' (showing the first ones)' : '';
|
|
154
180
|
lines.push(`### ❌ ${result.failures.length} failing test(s)${more}`, '');
|
|
@@ -238,7 +264,12 @@ export const runTestTool = {
|
|
|
238
264
|
durationMs: result.durationMs,
|
|
239
265
|
failures: result.failures.length,
|
|
240
266
|
});
|
|
241
|
-
|
|
267
|
+
const split = await quarantineSplit(root, result);
|
|
268
|
+
const passed = passesWithQuarantine(result, split);
|
|
269
|
+
return toolText(renderRunResult(result, root, split), {
|
|
270
|
+
ok: passed,
|
|
271
|
+
run: { ...runData(result), ...(split?.quarantined.length ? { quarantined: split.quarantined.length } : {}) },
|
|
272
|
+
});
|
|
242
273
|
}),
|
|
243
274
|
};
|
|
244
275
|
//# sourceMappingURL=run-test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-test.js","sourceRoot":"","sources":["../../src/tools/run-test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,SAAS,EACT,cAAc,EACd,KAAK,EACL,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,aAAa,CAAC;AAErB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,6GAA6G,CAC9G;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACrF,OAAO,EAAE,CAAC;SACP,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC5E,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,KAAK,CAAC;SACV,GAAG,CAAC,SAAS,CAAC;SACd,QAAQ,EAAE;SACV,QAAQ,CAAC,8FAA8F,CAAC;IAC3G,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,KAAK,CAAC;SACV,GAAG,CAAC,SAAS,CAAC;SACd,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,oGAAoG,CAAC;IACjH,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,2GAA2G,CAAC;IACxH,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,qHAAqH,CAAC;IAClI,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;CAC5D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAU1C,oFAAoF;AACpF,SAAS,UAAU,CAAC,OAAoB;IACtC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IACtH,OAAO,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACxH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAuB;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO;YAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChC,CAAC;YACJ,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACjI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc,CAAC,QAAuB;IAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,KAAK,QAAQ,CAAC,MAAM,kBAAkB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,QAAQ,CAAC,MAAM,wIAAwI;QACvO,EAAE;KACH,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,OAAO,CAAC,MAAM,WAAW,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChJ,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC1G,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAqB,EAAE,IAAY;IACjE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE;QACtB,CAAC,CAAC,UAAU,GAAG,CAAC;YACd,CAAC,CAAC,aAAa,UAAU,SAAS;YAClC,CAAC,CAAC,UAAU;QACd,CAAC,CAAC,MAAM,CAAC,QAAQ;YACf,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,UAAU,CAAC;IACjB,MAAM,KAAK,GAAa,CAAC,uBAAuB,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG;QACX,YAAY,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAC/C,QAAQ,MAAM,CAAC,QAAQ,IAAI,GAAG,EAAE;KACjC,CAAC;IACF,IAAI,MAAM,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE1C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,KAAK,CAAC,IAAI,CACR,kDAAkD,EAClD,sCAAsC,EACtC,KAAK,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EACjG,EAAE,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,UAAU,UAAU,0HAA0H,EAC9I,EAAE,CACH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,MAAM,mBAAmB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CACR,kHAAkH,EAClH,EAAE,CACH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CACR,yCAAyC,EACzC,EAAE,EACF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EACnD,EAAE,EACF,YAAY,EACZ,EAAE,CACH,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,UAAU;IAChB,WAAW,EACT,qUAAqU;IACvU,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,KAAK,EAAE,IAAkB,EAAE,GAAgB,EAAyB,EAAE,CAC7E,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAC9D,OAAO,SAAS,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAElE,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,kBAAkB,CAAC,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE;gBAC5F,IAAI,EAAE,wBAAwB,aAAa,CAAC,IAAI,CAAC,+CAA+C;aACjG,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAmB;YAC9B,WAAW,EAAE,IAAI;YACjB,UAAU;YACV,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;YAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9G,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC3D,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACpE,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CACb;gBACE,2CAA2C,GAAG,CAAC,EAAE,IAAI;gBACrD,EAAE;gBACF,cAAc,KAAK,EAAE;gBACrB,EAAE;gBACF,kDAAkD,GAAG,CAAC,EAAE,0IAA0I;aACnM,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CACrC,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;YAC5B,GAAG,OAAO;YACV,UAAU,EAAE,GAAG,CAAC,QAAQ;gBACtB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACvK,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1H,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACnC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SACjC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC;CACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"run-test.js","sourceRoot":"","sources":["../../src/tools/run-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool — save-login: log in once and save the session as a Playwright
|
|
3
|
+
* storageState file that tests and the page tools reuse. Before logging in
|
|
4
|
+
* again it checks whether the saved session still works, so expired logins
|
|
5
|
+
* refresh themselves and valid ones are left alone.
|
|
6
|
+
*
|
|
7
|
+
* Passwords and one-time codes never pass through the chat: fill values
|
|
8
|
+
* may say {{env:E2E_PASSWORD}} (read from the server's environment) and
|
|
9
|
+
* {{totp}} (an authenticator code generated from a secret in an
|
|
10
|
+
* environment variable at the moment it is typed).
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import type { ToolContext, ToolResponse } from '../types/index.js';
|
|
14
|
+
declare const saveLoginInput: z.ZodObject<{
|
|
15
|
+
url: z.ZodString;
|
|
16
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
17
|
+
type: z.ZodEnum<{
|
|
18
|
+
check: "check";
|
|
19
|
+
click: "click";
|
|
20
|
+
dblclick: "dblclick";
|
|
21
|
+
fill: "fill";
|
|
22
|
+
goto: "goto";
|
|
23
|
+
hover: "hover";
|
|
24
|
+
press: "press";
|
|
25
|
+
select: "select";
|
|
26
|
+
uncheck: "uncheck";
|
|
27
|
+
wait: "wait";
|
|
28
|
+
}>;
|
|
29
|
+
locator: z.ZodOptional<z.ZodString>;
|
|
30
|
+
value: z.ZodOptional<z.ZodString>;
|
|
31
|
+
url: z.ZodOptional<z.ZodString>;
|
|
32
|
+
ms: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
}, z.core.$strip>>>;
|
|
34
|
+
verify: z.ZodOptional<z.ZodObject<{
|
|
35
|
+
url: z.ZodOptional<z.ZodString>;
|
|
36
|
+
visible: z.ZodOptional<z.ZodString>;
|
|
37
|
+
notUrl: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, z.core.$strip>>;
|
|
39
|
+
name: z.ZodOptional<z.ZodString>;
|
|
40
|
+
path: z.ZodOptional<z.ZodString>;
|
|
41
|
+
totpSecretEnv: z.ZodOptional<z.ZodString>;
|
|
42
|
+
reuse: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
44
|
+
viewport: z.ZodOptional<z.ZodObject<{
|
|
45
|
+
width: z.ZodNumber;
|
|
46
|
+
height: z.ZodNumber;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
actionTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
50
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
export type SaveLoginInput = z.infer<typeof saveLoginInput>;
|
|
53
|
+
export declare const saveLoginSchema: z.ZodObject<{
|
|
54
|
+
url: z.ZodString;
|
|
55
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
56
|
+
type: z.ZodEnum<{
|
|
57
|
+
check: "check";
|
|
58
|
+
click: "click";
|
|
59
|
+
dblclick: "dblclick";
|
|
60
|
+
fill: "fill";
|
|
61
|
+
goto: "goto";
|
|
62
|
+
hover: "hover";
|
|
63
|
+
press: "press";
|
|
64
|
+
select: "select";
|
|
65
|
+
uncheck: "uncheck";
|
|
66
|
+
wait: "wait";
|
|
67
|
+
}>;
|
|
68
|
+
locator: z.ZodOptional<z.ZodString>;
|
|
69
|
+
value: z.ZodOptional<z.ZodString>;
|
|
70
|
+
url: z.ZodOptional<z.ZodString>;
|
|
71
|
+
ms: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
}, z.core.$strip>>>;
|
|
73
|
+
verify: z.ZodOptional<z.ZodObject<{
|
|
74
|
+
url: z.ZodOptional<z.ZodString>;
|
|
75
|
+
visible: z.ZodOptional<z.ZodString>;
|
|
76
|
+
notUrl: z.ZodOptional<z.ZodString>;
|
|
77
|
+
}, z.core.$strip>>;
|
|
78
|
+
name: z.ZodOptional<z.ZodString>;
|
|
79
|
+
path: z.ZodOptional<z.ZodString>;
|
|
80
|
+
totpSecretEnv: z.ZodOptional<z.ZodString>;
|
|
81
|
+
reuse: z.ZodOptional<z.ZodBoolean>;
|
|
82
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
83
|
+
viewport: z.ZodOptional<z.ZodObject<{
|
|
84
|
+
width: z.ZodNumber;
|
|
85
|
+
height: z.ZodNumber;
|
|
86
|
+
}, z.core.$strip>>;
|
|
87
|
+
actionTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
88
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
89
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
/**
|
|
92
|
+
* Environment variables a login may read. A page the agent visits could
|
|
93
|
+
* ask it to type {{env:AWS_SECRET_ACCESS_KEY}} into a form, so only names
|
|
94
|
+
* that are plainly test logins are allowed, plus any the user lists.
|
|
95
|
+
*/
|
|
96
|
+
export declare function loginEnvAllowed(name: string): boolean;
|
|
97
|
+
/** The environment values the fill steps ask for, checked and read. */
|
|
98
|
+
export declare function resolveLoginValues(actions: SaveLoginInput['actions']): Record<string, string>;
|
|
99
|
+
export declare const saveLoginTool: {
|
|
100
|
+
name: string;
|
|
101
|
+
description: string;
|
|
102
|
+
inputSchema: z.ZodObject<{
|
|
103
|
+
url: z.ZodString;
|
|
104
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
105
|
+
type: z.ZodEnum<{
|
|
106
|
+
check: "check";
|
|
107
|
+
click: "click";
|
|
108
|
+
dblclick: "dblclick";
|
|
109
|
+
fill: "fill";
|
|
110
|
+
goto: "goto";
|
|
111
|
+
hover: "hover";
|
|
112
|
+
press: "press";
|
|
113
|
+
select: "select";
|
|
114
|
+
uncheck: "uncheck";
|
|
115
|
+
wait: "wait";
|
|
116
|
+
}>;
|
|
117
|
+
locator: z.ZodOptional<z.ZodString>;
|
|
118
|
+
value: z.ZodOptional<z.ZodString>;
|
|
119
|
+
url: z.ZodOptional<z.ZodString>;
|
|
120
|
+
ms: z.ZodOptional<z.ZodNumber>;
|
|
121
|
+
}, z.core.$strip>>>;
|
|
122
|
+
verify: z.ZodOptional<z.ZodObject<{
|
|
123
|
+
url: z.ZodOptional<z.ZodString>;
|
|
124
|
+
visible: z.ZodOptional<z.ZodString>;
|
|
125
|
+
notUrl: z.ZodOptional<z.ZodString>;
|
|
126
|
+
}, z.core.$strip>>;
|
|
127
|
+
name: z.ZodOptional<z.ZodString>;
|
|
128
|
+
path: z.ZodOptional<z.ZodString>;
|
|
129
|
+
totpSecretEnv: z.ZodOptional<z.ZodString>;
|
|
130
|
+
reuse: z.ZodOptional<z.ZodBoolean>;
|
|
131
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
132
|
+
viewport: z.ZodOptional<z.ZodObject<{
|
|
133
|
+
width: z.ZodNumber;
|
|
134
|
+
height: z.ZodNumber;
|
|
135
|
+
}, z.core.$strip>>;
|
|
136
|
+
actionTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
137
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
138
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
139
|
+
}, z.core.$strip>;
|
|
140
|
+
handler: (args: SaveLoginInput, ctx: ToolContext) => Promise<ToolResponse>;
|
|
141
|
+
};
|
|
142
|
+
export {};
|