playwright-e2e-mcp 0.7.0 → 0.9.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.
Files changed (80) hide show
  1. package/README.md +134 -25
  2. package/dist/cli/doctor.d.ts +12 -1
  3. package/dist/cli/doctor.js +34 -4
  4. package/dist/cli/doctor.js.map +1 -1
  5. package/dist/cli/upload.d.ts +6 -5
  6. package/dist/cli/upload.js +20 -17
  7. package/dist/cli/upload.js.map +1 -1
  8. package/dist/discovery.d.ts +61 -0
  9. package/dist/discovery.js +108 -0
  10. package/dist/discovery.js.map +1 -0
  11. package/dist/http.d.ts +9 -0
  12. package/dist/http.js +49 -3
  13. package/dist/http.js.map +1 -1
  14. package/dist/index.js +8 -3
  15. package/dist/index.js.map +1 -1
  16. package/dist/oauth.d.ts +2 -0
  17. package/dist/oauth.js +1 -1
  18. package/dist/oauth.js.map +1 -1
  19. package/dist/server.d.ts +23 -3
  20. package/dist/server.js +55 -10
  21. package/dist/server.js.map +1 -1
  22. package/dist/skills.d.ts +23 -0
  23. package/dist/skills.js +101 -0
  24. package/dist/skills.js.map +1 -0
  25. package/dist/tools/analyze-history.js +9 -9
  26. package/dist/tools/analyze-history.js.map +1 -1
  27. package/dist/tools/audit-accessibility.d.ts +6 -0
  28. package/dist/tools/audit-performance.d.ts +6 -0
  29. package/dist/tools/compare-visual-state.d.ts +6 -0
  30. package/dist/tools/diagnose-flaky.js +5 -1
  31. package/dist/tools/diagnose-flaky.js.map +1 -1
  32. package/dist/tools/generate-e2e-test.d.ts +3 -0
  33. package/dist/tools/generate-e2e-test.js +3 -0
  34. package/dist/tools/generate-e2e-test.js.map +1 -1
  35. package/dist/tools/get-failure.js +3 -1
  36. package/dist/tools/get-failure.js.map +1 -1
  37. package/dist/tools/inspect-page.d.ts +6 -0
  38. package/dist/tools/inspect-page.js +3 -1
  39. package/dist/tools/inspect-page.js.map +1 -1
  40. package/dist/tools/list-tests.js +16 -12
  41. package/dist/tools/list-tests.js.map +1 -1
  42. package/dist/tools/probe-script.js +88 -14
  43. package/dist/tools/probe-script.js.map +1 -1
  44. package/dist/tools/run-test.js +2 -1
  45. package/dist/tools/run-test.js.map +1 -1
  46. package/dist/tools/save-login.d.ts +3 -0
  47. package/dist/tools/shared.d.ts +25 -1
  48. package/dist/tools/shared.js +56 -5
  49. package/dist/tools/shared.js.map +1 -1
  50. package/dist/tools/suggest-fix.js +4 -0
  51. package/dist/tools/suggest-fix.js.map +1 -1
  52. package/dist/tools/validate-selector.d.ts +6 -0
  53. package/dist/tools/validate-selector.js +10 -2
  54. package/dist/tools/validate-selector.js.map +1 -1
  55. package/dist/types/index.d.ts +1 -1
  56. package/dist/utils/history-client.d.ts +32 -0
  57. package/dist/utils/{pro-client.js → history-client.js} +27 -20
  58. package/dist/utils/history-client.js.map +1 -0
  59. package/dist/utils/live-reporter.d.ts +29 -0
  60. package/dist/utils/live-reporter.js +145 -0
  61. package/dist/utils/live-reporter.js.map +1 -0
  62. package/dist/utils/playwright-runner.js +36 -14
  63. package/dist/utils/playwright-runner.js.map +1 -1
  64. package/dist/utils/pytest-runner.d.ts +102 -0
  65. package/dist/utils/pytest-runner.js +715 -0
  66. package/dist/utils/pytest-runner.js.map +1 -0
  67. package/dist/utils/test-change-guard.d.ts +21 -0
  68. package/dist/utils/test-change-guard.js +128 -3
  69. package/dist/utils/test-change-guard.js.map +1 -1
  70. package/dist/utils/update-check.d.ts +50 -0
  71. package/dist/utils/update-check.js +75 -0
  72. package/dist/utils/update-check.js.map +1 -0
  73. package/examples/github-actions/playwright-e2e.yml +81 -0
  74. package/examples/gitlab-ci/playwright-e2e.yml +71 -0
  75. package/package.json +2 -2
  76. package/skill/playwright-e2e-mcp/SKILL.md +10 -4
  77. package/skill/playwright-e2e-mcp/references/setup.md +7 -2
  78. package/skill/playwright-e2e-mcp/references/tools.md +1 -1
  79. package/dist/utils/pro-client.d.ts +0 -29
  80. package/dist/utils/pro-client.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pytest-runner.js","sourceRoot":"","sources":["../../src/utils/pytest-runner.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,23 @@ export type GuardVerdict = 'BLOCK' | 'WARN' | 'OK';
34
34
  * and no word inside them looks like code.
35
35
  */
36
36
  export declare function maskCode(source: string): string;
37
+ /**
38
+ * Measure the try statements in masked code: `unsafe` counts tries whose
39
+ * catch neither rethrows nor asserts (a try/finally, or a catch that
40
+ * throws, still fails the test); `swallowedAssertions` counts the unsafe
41
+ * ones that wrap an assertion, which can then never fail.
42
+ */
43
+ export declare function tryShapes(masked: string): {
44
+ unsafe: number;
45
+ swallowedAssertions: number;
46
+ };
47
+ /**
48
+ * Count web-first assertions used as a bare statement without `await`:
49
+ * the test moves on (and can finish) before they settle, so they never
50
+ * fail it. Only statement-start calls count; an expect handed to
51
+ * Promise.all, assigned or returned is left alone.
52
+ */
53
+ export declare function unawaitedAssertions(masked: string): number;
37
54
  export interface TestShape {
38
55
  key: string;
39
56
  title: string;
@@ -46,6 +63,10 @@ export interface TestShape {
46
63
  forced: number;
47
64
  swallowed: number;
48
65
  tries: number;
66
+ /** try blocks around an assertion whose catch neither rethrows nor asserts. */
67
+ swallowedAssertions: number;
68
+ /** Web-first assertions left without `await`. */
69
+ unawaited: number;
49
70
  maxTimeout: number;
50
71
  strong: number;
51
72
  weak: number;
@@ -127,6 +127,112 @@ function closingParen(masked, open) {
127
127
  }
128
128
  return -1;
129
129
  }
130
+ /** Index of the brace closing the one at `open` in masked code, or -1. */
131
+ function closingBrace(masked, open) {
132
+ let depth = 0;
133
+ for (let i = open; i < masked.length; i += 1) {
134
+ const c = masked[i];
135
+ if (c === '{' || c === '(' || c === '[')
136
+ depth += 1;
137
+ else if (c === '}' || c === ')' || c === ']') {
138
+ depth -= 1;
139
+ if (depth === 0)
140
+ return c === '}' ? i : -1;
141
+ }
142
+ }
143
+ return -1;
144
+ }
145
+ /**
146
+ * Measure the try statements in masked code: `unsafe` counts tries whose
147
+ * catch neither rethrows nor asserts (a try/finally, or a catch that
148
+ * throws, still fails the test); `swallowedAssertions` counts the unsafe
149
+ * ones that wrap an assertion, which can then never fail.
150
+ */
151
+ export function tryShapes(masked) {
152
+ let unsafe = 0;
153
+ let swallowedAssertions = 0;
154
+ for (const match of masked.matchAll(/\btry\s*\{/g)) {
155
+ const open = match.index + match[0].length - 1;
156
+ const close = closingBrace(masked, open);
157
+ if (close < 0)
158
+ continue;
159
+ const handler = /^\s*catch\s*(?:\([^)]*\)\s*)?\{/.exec(masked.slice(close + 1));
160
+ if (!handler)
161
+ continue; // try/finally: the error still propagates
162
+ const catchOpen = close + 1 + handler[0].length - 1;
163
+ const catchClose = closingBrace(masked, catchOpen);
164
+ if (catchClose < 0)
165
+ continue;
166
+ const catchBody = masked.slice(catchOpen + 1, catchClose);
167
+ if (/\bthrow\b|\bexpect\s*\(|\btest\.fail\s*\(/.test(catchBody))
168
+ continue;
169
+ unsafe += 1;
170
+ if (/\bexpect(?:\.soft|\.poll)?\s*\(/.test(masked.slice(open, close)))
171
+ swallowedAssertions += 1;
172
+ }
173
+ return { unsafe, swallowedAssertions };
174
+ }
175
+ /** Matchers that return a promise (web-first assertions on a locator, page or response). */
176
+ const ASYNC_MATCHERS = new Set([
177
+ 'toBeAttached',
178
+ 'toBeChecked',
179
+ 'toBeDisabled',
180
+ 'toBeEditable',
181
+ 'toBeEmpty',
182
+ 'toBeEnabled',
183
+ 'toBeFocused',
184
+ 'toBeHidden',
185
+ 'toBeInViewport',
186
+ 'toBeVisible',
187
+ 'toBeOK',
188
+ 'toContainText',
189
+ 'toHaveAccessibleDescription',
190
+ 'toHaveAccessibleName',
191
+ 'toHaveAttribute',
192
+ 'toHaveClass',
193
+ 'toHaveCount',
194
+ 'toHaveCSS',
195
+ 'toHaveId',
196
+ 'toHaveJSProperty',
197
+ 'toHaveRole',
198
+ 'toHaveScreenshot',
199
+ 'toHaveText',
200
+ 'toHaveTitle',
201
+ 'toHaveURL',
202
+ 'toHaveValue',
203
+ 'toHaveValues',
204
+ 'toMatchAriaSnapshot',
205
+ ]);
206
+ /**
207
+ * Count web-first assertions used as a bare statement without `await`:
208
+ * the test moves on (and can finish) before they settle, so they never
209
+ * fail it. Only statement-start calls count; an expect handed to
210
+ * Promise.all, assigned or returned is left alone.
211
+ */
212
+ export function unawaitedAssertions(masked) {
213
+ let n = 0;
214
+ for (const match of masked.matchAll(/\bexpect(\.soft|\.poll)?\s*\(/g)) {
215
+ const at = match.index;
216
+ if (masked[at - 1] === '.')
217
+ continue;
218
+ let k = at - 1;
219
+ while (k >= 0 && /\s/.test(masked[k]))
220
+ k -= 1;
221
+ const prev = k < 0 ? ';' : masked[k];
222
+ if (prev !== ';' && prev !== '{' && prev !== '}')
223
+ continue; // await / return / argument / assignment
224
+ const open = at + match[0].length - 1;
225
+ const close = closingParen(masked, open);
226
+ if (close < 0)
227
+ continue;
228
+ const rest = /^\s*(?:\.\s*not\s*)?\.\s*(to[A-Z]\w*)\s*\(/.exec(masked.slice(close + 1));
229
+ if (!rest)
230
+ continue;
231
+ if (match[1] === '.poll' || ASYNC_MATCHERS.has(rest[1]))
232
+ n += 1;
233
+ }
234
+ return n;
235
+ }
130
236
  /** The string literal starting at `at` in the original source (after whitespace), or undefined. */
131
237
  function stringArgument(source, at) {
132
238
  let i = at;
@@ -207,6 +313,7 @@ export function shapeOf(source) {
207
313
  key += ' (again)';
208
314
  const body = masked.slice(block.start, block.end + 1);
209
315
  const matchers = [...body.matchAll(/\.(to[A-Z]\w*)\s*\(/g)].map((m) => m[1]);
316
+ const trying = tryShapes(body);
210
317
  shapes.set(key, {
211
318
  key,
212
319
  title: block.title,
@@ -218,7 +325,9 @@ export function shapeOf(source) {
218
325
  hardWaits: count(body, /\.waitForTimeout\s*\(/g),
219
326
  forced: count(body, /\bforce\s*:\s*true\b/g),
220
327
  swallowed: count(body, /\.catch\s*\(\s*(?:\(\s*\w*\s*\)|\w+)\s*=>\s*(?:\{\s*\}|undefined|null|void 0|false|true)\s*\)/g),
221
- tries: count(body, /\btry\s*\{/g),
328
+ tries: trying.unsafe,
329
+ swallowedAssertions: trying.swallowedAssertions,
330
+ unawaited: unawaitedAssertions(body),
222
331
  maxTimeout: maxNumber(body, /(?:\btimeout\s*:\s*|\bsetTimeout\s*\(\s*)([\d_]+)/g),
223
332
  strong: matchers.filter((m) => STRONG.has(m)).length,
224
333
  weak: matchers.filter((m) => WEAK.has(m)).length,
@@ -337,8 +446,24 @@ function compareTest(old, now, findings) {
337
446
  if (now.forced > old.forced) {
338
447
  findings.push({ severity: 'warn', rule: 'force-added', ...where, message: '`force: true` was added: the click skips the checks that catch a covered or disabled element.' });
339
448
  }
340
- if (now.swallowed > old.swallowed || now.tries > old.tries) {
341
- findings.push({ severity: 'warn', rule: 'error-swallowed', ...where, message: 'A `try` block or empty `.catch()` was added: a failing step can now pass silently.' });
449
+ if (now.swallowedAssertions > old.swallowedAssertions) {
450
+ findings.push({
451
+ severity: 'block',
452
+ rule: 'assertion-swallowed',
453
+ ...where,
454
+ message: 'An assertion was wrapped in `try` with a `catch` that neither rethrows nor asserts: it can no longer fail the test.',
455
+ });
456
+ }
457
+ else if (now.swallowed > old.swallowed || now.tries > old.tries) {
458
+ findings.push({ severity: 'warn', rule: 'error-swallowed', ...where, message: 'A `try` without a rethrow, or an empty `.catch()`, was added: a failing step can now pass silently.' });
459
+ }
460
+ if (now.unawaited > old.unawaited) {
461
+ findings.push({
462
+ severity: 'warn',
463
+ rule: 'assertion-not-awaited',
464
+ ...where,
465
+ message: 'A web-first assertion (toBeVisible, toHaveText…) is missing `await`: the test can finish before it settles, so it never fails.',
466
+ });
342
467
  }
343
468
  if (now.maxTimeout > Math.max(old.maxTimeout * 2, 30_000)) {
344
469
  findings.push({
@@ -1 +1 @@
1
- {"version":3,"file":"test-change-guard.js","sourceRoot":"","sources":["../../src/utils/test-change-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-change-guard.js","sourceRoot":"","sources":["../../src/utils/test-change-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Asks the npm registry for the latest published version of this package and
3
+ * compares it with the running one. Used by `doctor`, which a person runs on
4
+ * purpose; the MCP server itself never calls this.
5
+ *
6
+ * The request carries nothing but the package name (no project data, no
7
+ * identifiers). It is skipped when PW_MCP_NO_UPDATE_CHECK=1 or when called
8
+ * with `offline`, and any failure (no network, a proxy, a slow registry)
9
+ * resolves to `unknown` instead of throwing.
10
+ */
11
+ export declare const PACKAGE_NAME = "playwright-e2e-mcp";
12
+ export declare const REGISTRY_LATEST_URL = "https://registry.npmjs.org/playwright-e2e-mcp/latest";
13
+ export type UpdateStatus = {
14
+ state: 'current';
15
+ current: string;
16
+ latest: string;
17
+ } | {
18
+ state: 'outdated';
19
+ current: string;
20
+ latest: string;
21
+ } | {
22
+ state: 'ahead';
23
+ current: string;
24
+ latest: string;
25
+ } | {
26
+ state: 'unknown';
27
+ current: string;
28
+ reason: string;
29
+ } | {
30
+ state: 'skipped';
31
+ current: string;
32
+ reason: string;
33
+ };
34
+ /** Compares two x.y.z versions (a pre-release sorts before its release). */
35
+ export declare function compareVersions(a: string, b: string): number;
36
+ export interface UpdateCheckOptions {
37
+ offline?: boolean;
38
+ timeoutMs?: number;
39
+ fetchImpl?: typeof fetch;
40
+ env?: NodeJS.ProcessEnv;
41
+ }
42
+ export declare function checkForUpdate(current: string, options?: UpdateCheckOptions): Promise<UpdateStatus>;
43
+ /**
44
+ * How to upgrade, by the way this copy was installed. `npx -y
45
+ * playwright-e2e-mcp` (npm 10, which ships with Node 22) checks the registry
46
+ * on every launch and picks up a new release by itself, so restarting the MCP
47
+ * client is enough there; a project or global install, a git clone or the
48
+ * Docker image stays on its version until updated.
49
+ */
50
+ export declare const UPGRADE_HINT: string;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Asks the npm registry for the latest published version of this package and
3
+ * compares it with the running one. Used by `doctor`, which a person runs on
4
+ * purpose; the MCP server itself never calls this.
5
+ *
6
+ * The request carries nothing but the package name (no project data, no
7
+ * identifiers). It is skipped when PW_MCP_NO_UPDATE_CHECK=1 or when called
8
+ * with `offline`, and any failure (no network, a proxy, a slow registry)
9
+ * resolves to `unknown` instead of throwing.
10
+ */
11
+ export const PACKAGE_NAME = 'playwright-e2e-mcp';
12
+ export const REGISTRY_LATEST_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
13
+ /** Compares two x.y.z versions (a pre-release sorts before its release). */
14
+ export function compareVersions(a, b) {
15
+ const parse = (v) => {
16
+ const [core = '', pre = ''] = v.trim().replace(/^v/, '').split('-', 2);
17
+ const nums = core.split('.').map((n) => Number.parseInt(n, 10) || 0);
18
+ while (nums.length < 3)
19
+ nums.push(0);
20
+ return { nums, pre };
21
+ };
22
+ const x = parse(a);
23
+ const y = parse(b);
24
+ for (let i = 0; i < 3; i++) {
25
+ if (x.nums[i] !== y.nums[i])
26
+ return x.nums[i] < y.nums[i] ? -1 : 1;
27
+ }
28
+ if (x.pre === y.pre)
29
+ return 0;
30
+ if (!x.pre)
31
+ return 1;
32
+ if (!y.pre)
33
+ return -1;
34
+ return x.pre < y.pre ? -1 : 1;
35
+ }
36
+ export async function checkForUpdate(current, options = {}) {
37
+ const env = options.env ?? process.env;
38
+ if (options.offline)
39
+ return { state: 'skipped', current, reason: '--offline' };
40
+ if (env.PW_MCP_NO_UPDATE_CHECK === '1' || env.PW_MCP_NO_UPDATE_CHECK === 'true') {
41
+ return { state: 'skipped', current, reason: 'PW_MCP_NO_UPDATE_CHECK is set' };
42
+ }
43
+ const fetchImpl = options.fetchImpl ?? globalThis.fetch;
44
+ if (typeof fetchImpl !== 'function')
45
+ return { state: 'unknown', current, reason: 'fetch is not available' };
46
+ try {
47
+ const res = await fetchImpl(REGISTRY_LATEST_URL, {
48
+ headers: { accept: 'application/json' },
49
+ signal: AbortSignal.timeout(options.timeoutMs ?? 3000),
50
+ });
51
+ if (!res.ok)
52
+ return { state: 'unknown', current, reason: `npm registry answered ${res.status}` };
53
+ const body = (await res.json());
54
+ const latest = typeof body.version === 'string' ? body.version : '';
55
+ if (!/^\d+\.\d+\.\d+/.test(latest))
56
+ return { state: 'unknown', current, reason: 'npm registry gave no version' };
57
+ const cmp = compareVersions(current, latest);
58
+ return { state: cmp < 0 ? 'outdated' : cmp > 0 ? 'ahead' : 'current', current, latest };
59
+ }
60
+ catch (err) {
61
+ const message = err.name === 'TimeoutError' ? 'npm registry did not answer in time' : err.message.split('\n')[0];
62
+ return { state: 'unknown', current, reason: message };
63
+ }
64
+ }
65
+ /**
66
+ * How to upgrade, by the way this copy was installed. `npx -y
67
+ * playwright-e2e-mcp` (npm 10, which ships with Node 22) checks the registry
68
+ * on every launch and picks up a new release by itself, so restarting the MCP
69
+ * client is enough there; a project or global install, a git clone or the
70
+ * Docker image stays on its version until updated.
71
+ */
72
+ export const UPGRADE_HINT = 'restart your MCP client (npx -y playwright-e2e-mcp fetches the new version itself); ' +
73
+ 'project install: npm install -D playwright-e2e-mcp@latest · global: npm install -g playwright-e2e-mcp@latest · ' +
74
+ 'Docker: docker pull ghcr.io/xsignon-secure/playwright-e2e-mcp:latest · git clone: git pull && npm ci';
75
+ //# sourceMappingURL=update-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/utils/update-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ name: Playwright E2E Diagnosis
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main, master]
7
+
8
+ # Permissions required:
9
+ # - contents: read to check out the repository
10
+ # - pull-requests: write to post/update the PR comment report and suggested fixes
11
+ permissions:
12
+ contents: read
13
+ pull-requests: write
14
+
15
+ jobs:
16
+ e2e:
17
+ name: Playwright E2E Tests
18
+ runs-on: ubuntu-latest
19
+ timeout-minutes: 30
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+ with:
25
+ persist-credentials: false
26
+
27
+ - name: Set up Node.js
28
+ uses: actions/setup-node@v4
29
+ with:
30
+ node-version: 22
31
+ cache: npm
32
+
33
+ - name: Install dependencies
34
+ run: npm ci
35
+
36
+ - name: Install Playwright browsers and OS dependencies
37
+ run: npx playwright install --with-deps chromium
38
+
39
+ - name: Run Playwright E2E diagnosis action
40
+ id: e2e
41
+ uses: xsignon-secure/E2E@v0.9.0
42
+ with:
43
+ # Directory containing playwright.config.* (default is workspace root)
44
+ project-root: .
45
+
46
+ # Extra arguments passed to playwright-e2e-mcp ci, e.g. "--browser chromium tests/checkout"
47
+ # args: --browser chromium tests/
48
+
49
+ # Repeat failing tests (2-10) to obtain an empirical flaky verdict; 0 skips
50
+ flaky-runs: 3
51
+
52
+ # Draft suggest-fix diffs for the first N failures (0-5)
53
+ suggest: 2
54
+
55
+ # Re-run each failing test with its fix applied and post only verified fixes
56
+ verify-fixes: true
57
+
58
+ # Post verified fixes directly as one-click GitHub suggested changes on the PR
59
+ review: true
60
+
61
+ # Post/edit a single diagnosis summary comment on the PR
62
+ comment: true
63
+
64
+ # Heal guard: block test changes that pass by checking less (deleted assertions, skipped tests, .only)
65
+ # guard: true
66
+
67
+ # Shared team history (optional, free): upload runs to your self-hosted history server
68
+ # (history-server/ in xsignon-secure/E2E)
69
+ # history-token: ${{ secrets.PW_MCP_HISTORY_TOKEN }}
70
+ # history-url: https://history.example.com
71
+
72
+ # Fail step when tests fail (default: true)
73
+ fail-on-failure: true
74
+
75
+ - name: Upload diagnosis report
76
+ if: always() && steps.e2e.outputs.report != ''
77
+ uses: actions/upload-artifact@v4
78
+ with:
79
+ name: playwright-e2e-diagnosis-report
80
+ path: ${{ steps.e2e.outputs.report }}
81
+ retention-days: 14
@@ -0,0 +1,71 @@
1
+ # playwright-e2e-mcp on GitLab CI.
2
+ #
3
+ # Copy this into .gitlab-ci.yml (or `include:` it). It does what the GitHub
4
+ # Action does, with GitLab's own pieces:
5
+ # - on a merge request, the heal guard fails the job when a changed test
6
+ # now checks less (an assertion removed, a test skipped, `.only` added);
7
+ # - `ci` runs the suite (auto-retry once, so flaky tests are reported as
8
+ # flaky), repeats failures for a flaky verdict and drafts fixes;
9
+ # - the Markdown report is printed in the job log, kept as an artifact
10
+ # and, when E2E_REPORT_TOKEN is set, posted as a merge request comment.
11
+ #
12
+ # Exit codes of `ci`: 0 passed (flaky allowed), 1 tests failed, 2 the run
13
+ # itself failed (no Playwright, config error, timeout).
14
+
15
+ stages:
16
+ - test
17
+
18
+ playwright-e2e:
19
+ stage: test
20
+ # Microsoft's Playwright image ships Node and the browsers. Use the tag that
21
+ # matches the @playwright/test version in your package-lock.json (the
22
+ # browsers are tied to it), e.g. v1.64.1-noble for 1.64.1.
23
+ image: mcr.microsoft.com/playwright:v1.64.1-noble
24
+ variables:
25
+ # The guard compares with the target branch, so it needs real history.
26
+ GIT_DEPTH: "0"
27
+ npm_config_cache: "$CI_PROJECT_DIR/.npm"
28
+ cache:
29
+ key:
30
+ files:
31
+ - package-lock.json
32
+ paths:
33
+ - .npm/
34
+ rules:
35
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
36
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
37
+ before_script:
38
+ - npm ci --prefer-offline
39
+ script:
40
+ # 1. Heal guard, merge requests only. Add --strict to fail on warnings too.
41
+ - |
42
+ if [ -n "$CI_MERGE_REQUEST_IID" ]; then
43
+ git fetch --quiet origin "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
44
+ npx -y playwright-e2e-mcp guard --base "origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
45
+ fi
46
+ # 2. Run and diagnose the suite. --verify-fixes re-runs each failing test
47
+ # with its drafted fix applied, then restores the file.
48
+ - npx -y playwright-e2e-mcp ci --flaky-runs 3 --suggest 2 --verify-fixes --output e2e-report.md
49
+ after_script:
50
+ # 3. Post the report on the merge request. E2E_REPORT_TOKEN is a project
51
+ # access token with the `api` scope, stored as a masked CI/CD variable.
52
+ # after_script runs even when the tests fail, so the report still lands.
53
+ - |
54
+ if [ -f e2e-report.md ] && [ -n "$CI_MERGE_REQUEST_IID" ] && [ -n "$E2E_REPORT_TOKEN" ]; then
55
+ node -e 'process.stdout.write(JSON.stringify({ body: require("fs").readFileSync("e2e-report.md", "utf8").slice(0, 900000) }))' > e2e-note.json
56
+ curl --silent --show-error --fail --request POST \
57
+ --header "PRIVATE-TOKEN: $E2E_REPORT_TOKEN" \
58
+ --header "Content-Type: application/json" \
59
+ --data @e2e-note.json \
60
+ "$CI_API_V4_URL/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/notes" > /dev/null \
61
+ || echo "Could not post the report on the merge request"
62
+ fi
63
+ artifacts:
64
+ name: "playwright-e2e-$CI_COMMIT_REF_SLUG"
65
+ when: always
66
+ expose_as: "Playwright E2E report"
67
+ paths:
68
+ - e2e-report.md
69
+ - playwright-report/
70
+ - test-results/
71
+ expire_in: 14 days
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "playwright-e2e-mcp",
3
- "version": "0.7.0",
4
- "description": "MCP server and agent skill that run, diagnose and fix failing Playwright tests: CI report diagnosis, trace analysis, verified locator fixes, flaky verdicts, breaking commits, tests written by walking the flow, accessibility and Web Vitals audits.",
3
+ "version": "0.9.0",
4
+ "description": "MCP server and agent skill that run, diagnose and fix failing Playwright tests (TypeScript and pytest): CI report diagnosis, trace analysis, verified locator fixes, flaky verdicts, breaking commits, heal guard, accessibility and Web Vitals audits.",
5
5
  "author": "xsignon-secure (https://github.com/xsignon-secure)",
6
6
  "mcpName": "io.github.xsignon-secure/E2E",
7
7
  "type": "module",