playwright 1.55.0-alpha-2025-08-15 → 1.55.0-alpha-2025-08-16
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/ThirdPartyNotices.txt +2636 -358
- package/lib/index.js +1 -1
- package/lib/mcp/bundle.js +59 -0
- package/lib/mcp/exports.js +30 -0
- package/lib/mcp/inProcessTransport.js +71 -0
- package/lib/mcp/proxyBackend.js +123 -0
- package/lib/mcp/server.js +118 -0
- package/lib/mcp/tool.js +41 -0
- package/lib/mcp/transport.js +161 -0
- package/lib/mcpBundleImpl.js +94 -0
- package/lib/reporters/base.js +1 -1
- package/lib/reporters/list.js +1 -1
- package/lib/reporters/markdown.js +1 -1
- package/lib/runner/testRunner.js +2 -2
- package/lib/worker/fixtureRunner.js +1 -1
- package/lib/worker/testInfo.js +6 -7
- package/lib/worker/testTracing.js +1 -1
- package/package.json +5 -2
package/lib/reporters/base.js
CHANGED
|
@@ -115,11 +115,11 @@ const internalScreen = {
|
|
|
115
115
|
};
|
|
116
116
|
class TerminalReporter {
|
|
117
117
|
constructor(options = {}) {
|
|
118
|
-
this.screen = terminalScreen;
|
|
119
118
|
this.totalTestCount = 0;
|
|
120
119
|
this.fileDurations = /* @__PURE__ */ new Map();
|
|
121
120
|
this._fatalErrors = [];
|
|
122
121
|
this._failureCount = 0;
|
|
122
|
+
this.screen = options.screen ?? terminalScreen;
|
|
123
123
|
this._omitFailures = options.omitFailures || false;
|
|
124
124
|
}
|
|
125
125
|
version() {
|
package/lib/reporters/list.js
CHANGED
|
@@ -30,7 +30,7 @@ const POSITIVE_STATUS_MARK = DOES_NOT_SUPPORT_UTF8_IN_TERMINAL ? "ok" : "\u2713"
|
|
|
30
30
|
const NEGATIVE_STATUS_MARK = DOES_NOT_SUPPORT_UTF8_IN_TERMINAL ? "x" : "\u2718";
|
|
31
31
|
class ListReporter extends import_base.TerminalReporter {
|
|
32
32
|
constructor(options) {
|
|
33
|
-
super();
|
|
33
|
+
super(options);
|
|
34
34
|
this._lastRow = 0;
|
|
35
35
|
this._lastColumn = 0;
|
|
36
36
|
this._testRows = /* @__PURE__ */ new Map();
|
|
@@ -134,7 +134,7 @@ class MarkdownReporter {
|
|
|
134
134
|
function formatTestTitle(rootDir, test) {
|
|
135
135
|
const [, projectName, , ...titles] = test.titlePath();
|
|
136
136
|
const relativeTestPath = import_path.default.relative(rootDir, test.location.file);
|
|
137
|
-
const location = `${relativeTestPath}
|
|
137
|
+
const location = `${relativeTestPath}:${test.location.line}`;
|
|
138
138
|
const projectTitle = projectName ? `[${projectName}] \u203A ` : "";
|
|
139
139
|
const testTitle = `${projectTitle}${location} \u203A ${titles.join(" \u203A ")}`;
|
|
140
140
|
const extraTags = test.tags.filter((t) => !testTitle.includes(t));
|
package/lib/runner/testRunner.js
CHANGED
|
@@ -65,7 +65,7 @@ class TestRunner extends import_events.default {
|
|
|
65
65
|
this._populateDependenciesOnList = false;
|
|
66
66
|
this._recoverFromStepErrors = false;
|
|
67
67
|
this._resumeAfterStepErrors = /* @__PURE__ */ new Map();
|
|
68
|
-
this.
|
|
68
|
+
this.configLocation = configLocation;
|
|
69
69
|
this._configCLIOverrides = configCLIOverrides;
|
|
70
70
|
this._watcher = new import_fsWatcher.Watcher((events) => {
|
|
71
71
|
const collector = /* @__PURE__ */ new Set();
|
|
@@ -332,7 +332,7 @@ class TestRunner extends import_events.default {
|
|
|
332
332
|
}
|
|
333
333
|
async _loadConfig(overrides) {
|
|
334
334
|
try {
|
|
335
|
-
const config = await (0, import_configLoader.loadConfig)(this.
|
|
335
|
+
const config = await (0, import_configLoader.loadConfig)(this.configLocation, overrides);
|
|
336
336
|
if (!this._plugins) {
|
|
337
337
|
(0, import_webServerPlugin.webServerPluginsForConfig)(config).forEach((p) => config.plugins.push({ factory: p }));
|
|
338
338
|
(0, import_gitCommitInfoPlugin.addGitCommitInfoPlugin)(config);
|
|
@@ -37,7 +37,7 @@ class Fixture {
|
|
|
37
37
|
const location = isUserFixture ? this.registration.location : void 0;
|
|
38
38
|
this._stepInfo = { title: `Fixture ${(0, import_utils.escapeWithQuotes)(title, '"')}`, category: "fixture", location };
|
|
39
39
|
if (this.registration.box)
|
|
40
|
-
this._stepInfo.
|
|
40
|
+
this._stepInfo.group = isUserFixture ? "configuration" : "internal";
|
|
41
41
|
this._setupDescription = {
|
|
42
42
|
title,
|
|
43
43
|
phase: "setup",
|
package/lib/worker/testInfo.js
CHANGED
|
@@ -194,11 +194,10 @@ class TestInfoImpl {
|
|
|
194
194
|
location = location || boxedStack[0];
|
|
195
195
|
}
|
|
196
196
|
location = location || filteredStack[0];
|
|
197
|
-
const visibility = parentStep?.visibility === "internal" || data.visibility === "internal" ? "internal" : parentStep?.visibility === "hidden" || data.visibility === "hidden" ? "hidden" : void 0;
|
|
198
197
|
const step = {
|
|
199
198
|
...data,
|
|
200
199
|
stepId,
|
|
201
|
-
|
|
200
|
+
group: parentStep?.group ?? data.group,
|
|
202
201
|
boxedStack,
|
|
203
202
|
location,
|
|
204
203
|
steps: [],
|
|
@@ -242,7 +241,7 @@ ${(0, import_utils.stringifyStackFrames)(step.boxedStack).join("\n")}`;
|
|
|
242
241
|
}
|
|
243
242
|
}
|
|
244
243
|
}
|
|
245
|
-
if (!step.
|
|
244
|
+
if (!step.group) {
|
|
246
245
|
const payload = {
|
|
247
246
|
testId: this.testId,
|
|
248
247
|
stepId,
|
|
@@ -253,7 +252,7 @@ ${(0, import_utils.stringifyStackFrames)(step.boxedStack).join("\n")}`;
|
|
|
253
252
|
};
|
|
254
253
|
this._onStepEnd(payload);
|
|
255
254
|
}
|
|
256
|
-
if (step.
|
|
255
|
+
if (step.group !== "internal") {
|
|
257
256
|
const errorForTrace = step.error ? { name: "", message: step.error.message || "", stack: step.error.stack } : void 0;
|
|
258
257
|
const attachments = step.attachmentIndices.map((i) => this.attachments[i]);
|
|
259
258
|
this._tracing.appendAfterActionForStep(stepId, errorForTrace, attachments, step.info.annotations);
|
|
@@ -263,7 +262,7 @@ ${(0, import_utils.stringifyStackFrames)(step.boxedStack).join("\n")}`;
|
|
|
263
262
|
const parentStepList = parentStep ? parentStep.steps : this._steps;
|
|
264
263
|
parentStepList.push(step);
|
|
265
264
|
this._stepMap.set(stepId, step);
|
|
266
|
-
if (!step.
|
|
265
|
+
if (!step.group) {
|
|
267
266
|
const payload = {
|
|
268
267
|
testId: this.testId,
|
|
269
268
|
stepId,
|
|
@@ -275,7 +274,7 @@ ${(0, import_utils.stringifyStackFrames)(step.boxedStack).join("\n")}`;
|
|
|
275
274
|
};
|
|
276
275
|
this._onStepBegin(payload);
|
|
277
276
|
}
|
|
278
|
-
if (step.
|
|
277
|
+
if (step.group !== "internal") {
|
|
279
278
|
this._tracing.appendBeforeActionForStep({
|
|
280
279
|
stepId,
|
|
281
280
|
parentId: parentStep?.stepId,
|
|
@@ -283,7 +282,7 @@ ${(0, import_utils.stringifyStackFrames)(step.boxedStack).join("\n")}`;
|
|
|
283
282
|
category: step.category,
|
|
284
283
|
params: step.params,
|
|
285
284
|
stack: step.location ? [step.location] : [],
|
|
286
|
-
|
|
285
|
+
group: step.group
|
|
287
286
|
});
|
|
288
287
|
}
|
|
289
288
|
return step;
|
|
@@ -233,7 +233,7 @@ class TestTracing {
|
|
|
233
233
|
title: options.title,
|
|
234
234
|
params: Object.fromEntries(Object.entries(options.params || {}).map(([name, value]) => [name, generatePreview(value)])),
|
|
235
235
|
stack: options.stack,
|
|
236
|
-
|
|
236
|
+
group: options.group
|
|
237
237
|
});
|
|
238
238
|
}
|
|
239
239
|
appendAfterActionForStep(callId, error, attachments = [], annotations) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "playwright",
|
|
3
|
-
"version": "1.55.0-alpha-2025-08-
|
|
3
|
+
"version": "1.55.0-alpha-2025-08-16",
|
|
4
4
|
"description": "A high-level API to automate web browsers",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,7 +21,10 @@
|
|
|
21
21
|
"./package.json": "./package.json",
|
|
22
22
|
"./lib/common/configLoader": "./lib/common/configLoader.js",
|
|
23
23
|
"./lib/fsWatcher": "./lib/fsWatcher.js",
|
|
24
|
+
"./lib/mcp": "./lib/mcp/exports.js",
|
|
24
25
|
"./lib/program": "./lib/program.js",
|
|
26
|
+
"./lib/reporters/base": "./lib/reporters/base.js",
|
|
27
|
+
"./lib/reporters/list": "./lib/reporters/list.js",
|
|
25
28
|
"./lib/transform/babelBundle": "./lib/transform/babelBundle.js",
|
|
26
29
|
"./lib/transform/compilationCache": "./lib/transform/compilationCache.js",
|
|
27
30
|
"./lib/transform/esmLoader": "./lib/transform/esmLoader.js",
|
|
@@ -57,7 +60,7 @@
|
|
|
57
60
|
},
|
|
58
61
|
"license": "Apache-2.0",
|
|
59
62
|
"dependencies": {
|
|
60
|
-
"playwright-core": "1.55.0-alpha-2025-08-
|
|
63
|
+
"playwright-core": "1.55.0-alpha-2025-08-16"
|
|
61
64
|
},
|
|
62
65
|
"optionalDependencies": {
|
|
63
66
|
"fsevents": "2.3.2"
|