patchright-bun 1.58.0 → 1.58.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +225 -225
- package/ThirdPartyNotices.txt +5041 -5041
- package/cli.js +19 -19
- package/index.d.ts +17 -17
- package/index.js +17 -17
- package/index.mjs +18 -18
- package/jsx-runtime.js +42 -42
- package/jsx-runtime.mjs +21 -21
- package/lib/agents/agentParser.js +89 -89
- package/lib/agents/copilot-setup-steps.yml +34 -34
- package/lib/agents/generateAgents.js +348 -348
- package/lib/agents/playwright-test-coverage.prompt.md +31 -31
- package/lib/agents/playwright-test-generate.prompt.md +8 -8
- package/lib/agents/playwright-test-generator.agent.md +88 -88
- package/lib/agents/playwright-test-heal.prompt.md +6 -6
- package/lib/agents/playwright-test-healer.agent.md +55 -55
- package/lib/agents/playwright-test-plan.prompt.md +9 -9
- package/lib/agents/playwright-test-planner.agent.md +73 -73
- package/lib/common/config.js +282 -282
- package/lib/common/configLoader.js +344 -344
- package/lib/common/esmLoaderHost.js +104 -104
- package/lib/common/expectBundle.js +28 -28
- package/lib/common/expectBundleImpl.js +407 -407
- package/lib/common/fixtures.js +302 -302
- package/lib/common/globals.js +58 -58
- package/lib/common/ipc.js +60 -60
- package/lib/common/poolBuilder.js +85 -85
- package/lib/common/process.js +132 -132
- package/lib/common/suiteUtils.js +140 -140
- package/lib/common/test.js +321 -321
- package/lib/common/testLoader.js +101 -101
- package/lib/common/testType.js +298 -298
- package/lib/common/validators.js +68 -68
- package/lib/fsWatcher.js +67 -67
- package/lib/index.js +726 -726
- package/lib/internalsForTest.js +42 -42
- package/lib/isomorphic/events.js +77 -77
- package/lib/isomorphic/folders.js +30 -30
- package/lib/isomorphic/stringInternPool.js +69 -69
- package/lib/isomorphic/teleReceiver.js +521 -521
- package/lib/isomorphic/teleSuiteUpdater.js +157 -157
- package/lib/isomorphic/testServerConnection.js +225 -225
- package/lib/isomorphic/testServerInterface.js +16 -16
- package/lib/isomorphic/testTree.js +329 -329
- package/lib/isomorphic/types.d.js +16 -16
- package/lib/loader/loaderMain.js +59 -59
- package/lib/matchers/expect.js +311 -311
- package/lib/matchers/matcherHint.js +44 -44
- package/lib/matchers/matchers.js +383 -383
- package/lib/matchers/toBeTruthy.js +75 -75
- package/lib/matchers/toEqual.js +100 -100
- package/lib/matchers/toHaveURL.js +101 -101
- package/lib/matchers/toMatchAriaSnapshot.js +159 -159
- package/lib/matchers/toMatchSnapshot.js +342 -342
- package/lib/matchers/toMatchText.js +99 -99
- package/lib/mcp/browser/browserContextFactory.js +329 -329
- package/lib/mcp/browser/browserServerBackend.js +84 -84
- package/lib/mcp/browser/config.js +421 -421
- package/lib/mcp/browser/context.js +244 -244
- package/lib/mcp/browser/response.js +278 -278
- package/lib/mcp/browser/sessionLog.js +75 -75
- package/lib/mcp/browser/tab.js +343 -343
- package/lib/mcp/browser/tools/common.js +65 -65
- package/lib/mcp/browser/tools/console.js +46 -46
- package/lib/mcp/browser/tools/dialogs.js +60 -60
- package/lib/mcp/browser/tools/evaluate.js +61 -61
- package/lib/mcp/browser/tools/files.js +58 -58
- package/lib/mcp/browser/tools/form.js +63 -63
- package/lib/mcp/browser/tools/install.js +72 -72
- package/lib/mcp/browser/tools/keyboard.js +107 -107
- package/lib/mcp/browser/tools/mouse.js +107 -107
- package/lib/mcp/browser/tools/navigate.js +71 -71
- package/lib/mcp/browser/tools/network.js +63 -63
- package/lib/mcp/browser/tools/open.js +57 -57
- package/lib/mcp/browser/tools/pdf.js +49 -49
- package/lib/mcp/browser/tools/runCode.js +78 -78
- package/lib/mcp/browser/tools/screenshot.js +93 -93
- package/lib/mcp/browser/tools/snapshot.js +173 -173
- package/lib/mcp/browser/tools/tabs.js +67 -67
- package/lib/mcp/browser/tools/tool.js +47 -47
- package/lib/mcp/browser/tools/tracing.js +74 -74
- package/lib/mcp/browser/tools/utils.js +94 -94
- package/lib/mcp/browser/tools/verify.js +143 -143
- package/lib/mcp/browser/tools/wait.js +63 -63
- package/lib/mcp/browser/tools.js +84 -84
- package/lib/mcp/browser/watchdog.js +44 -44
- package/lib/mcp/config.d.js +16 -16
- package/lib/mcp/extension/cdpRelay.js +351 -351
- package/lib/mcp/extension/extensionContextFactory.js +76 -76
- package/lib/mcp/extension/protocol.js +28 -28
- package/lib/mcp/index.js +61 -61
- package/lib/mcp/log.js +35 -35
- package/lib/mcp/program.js +111 -111
- package/lib/mcp/sdk/exports.js +28 -28
- package/lib/mcp/sdk/http.js +152 -152
- package/lib/mcp/sdk/inProcessTransport.js +71 -71
- package/lib/mcp/sdk/server.js +223 -223
- package/lib/mcp/sdk/tool.js +47 -47
- package/lib/mcp/terminal/cli.js +296 -296
- package/lib/mcp/terminal/command.js +56 -56
- package/lib/mcp/terminal/commands.js +333 -333
- package/lib/mcp/terminal/daemon.js +129 -129
- package/lib/mcp/terminal/help.json +31 -31
- package/lib/mcp/terminal/helpGenerator.js +88 -88
- package/lib/mcp/terminal/socketConnection.js +80 -80
- package/lib/mcp/test/browserBackend.js +98 -98
- package/lib/mcp/test/generatorTools.js +122 -122
- package/lib/mcp/test/plannerTools.js +145 -145
- package/lib/mcp/test/seed.js +82 -82
- package/lib/mcp/test/streams.js +44 -44
- package/lib/mcp/test/testBackend.js +99 -99
- package/lib/mcp/test/testContext.js +285 -285
- package/lib/mcp/test/testTool.js +30 -30
- package/lib/mcp/test/testTools.js +108 -108
- package/lib/plugins/gitCommitInfoPlugin.js +198 -198
- package/lib/plugins/index.js +28 -28
- package/lib/plugins/webServerPlugin.js +237 -237
- package/lib/program.js +417 -417
- package/lib/reporters/base.js +634 -634
- package/lib/reporters/blob.js +138 -138
- package/lib/reporters/dot.js +99 -99
- package/lib/reporters/empty.js +32 -32
- package/lib/reporters/github.js +128 -128
- package/lib/reporters/html.js +633 -633
- package/lib/reporters/internalReporter.js +138 -138
- package/lib/reporters/json.js +254 -254
- package/lib/reporters/junit.js +232 -232
- package/lib/reporters/line.js +131 -131
- package/lib/reporters/list.js +253 -253
- package/lib/reporters/listModeReporter.js +69 -69
- package/lib/reporters/markdown.js +144 -144
- package/lib/reporters/merge.js +558 -558
- package/lib/reporters/multiplexer.js +112 -112
- package/lib/reporters/reporterV2.js +102 -102
- package/lib/reporters/teleEmitter.js +317 -317
- package/lib/reporters/versions/blobV1.js +16 -16
- package/lib/runner/dispatcher.js +530 -530
- package/lib/runner/failureTracker.js +72 -72
- package/lib/runner/lastRun.js +77 -77
- package/lib/runner/loadUtils.js +334 -334
- package/lib/runner/loaderHost.js +89 -89
- package/lib/runner/processHost.js +180 -180
- package/lib/runner/projectUtils.js +241 -241
- package/lib/runner/rebase.js +189 -189
- package/lib/runner/reporters.js +138 -138
- package/lib/runner/sigIntWatcher.js +96 -96
- package/lib/runner/storage.js +91 -91
- package/lib/runner/taskRunner.js +127 -127
- package/lib/runner/tasks.js +410 -410
- package/lib/runner/testGroups.js +125 -125
- package/lib/runner/testRunner.js +398 -398
- package/lib/runner/testServer.js +269 -269
- package/lib/runner/uiModeReporter.js +30 -30
- package/lib/runner/vcs.js +72 -72
- package/lib/runner/watchMode.js +396 -396
- package/lib/runner/workerHost.js +104 -104
- package/lib/third_party/pirates.js +62 -62
- package/lib/third_party/tsconfig-loader.js +103 -103
- package/lib/transform/babelBundle.js +46 -46
- package/lib/transform/babelBundleImpl.js +461 -461
- package/lib/transform/compilationCache.js +274 -274
- package/lib/transform/esmLoader.js +103 -103
- package/lib/transform/md.js +221 -221
- package/lib/transform/portTransport.js +67 -67
- package/lib/transform/transform.js +303 -303
- package/lib/util.js +400 -400
- package/lib/utilsBundle.js +50 -50
- package/lib/utilsBundleImpl.js +103 -103
- package/lib/worker/fixtureRunner.js +262 -262
- package/lib/worker/testInfo.js +536 -536
- package/lib/worker/testTracing.js +345 -345
- package/lib/worker/timeoutManager.js +174 -174
- package/lib/worker/util.js +31 -31
- package/lib/worker/workerMain.js +530 -530
- package/package.json +2 -2
- package/test.d.ts +18 -18
- package/test.js +24 -24
- package/test.mjs +34 -34
- package/types/test.d.ts +10251 -10251
- package/types/testReporter.d.ts +822 -822
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var timeoutManager_exports = {};
|
|
20
|
-
__export(timeoutManager_exports, {
|
|
21
|
-
TimeoutManager: () => TimeoutManager,
|
|
22
|
-
TimeoutManagerError: () => TimeoutManagerError,
|
|
23
|
-
kMaxDeadline: () => kMaxDeadline
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(timeoutManager_exports);
|
|
26
|
-
var import_utils = require("patchright-core/lib/utils");
|
|
27
|
-
var import_utils2 = require("patchright-core/lib/utils");
|
|
28
|
-
var import_util = require("../util");
|
|
29
|
-
const kMaxDeadline = 2147483647;
|
|
30
|
-
class TimeoutManager {
|
|
31
|
-
constructor(timeout) {
|
|
32
|
-
this._ignoreTimeouts = false;
|
|
33
|
-
this._defaultSlot = { timeout, elapsed: 0 };
|
|
34
|
-
}
|
|
35
|
-
setIgnoreTimeouts() {
|
|
36
|
-
this._ignoreTimeouts = true;
|
|
37
|
-
if (this._running)
|
|
38
|
-
this._updateTimeout(this._running);
|
|
39
|
-
}
|
|
40
|
-
interrupt() {
|
|
41
|
-
if (this._running)
|
|
42
|
-
this._running.timeoutPromise.reject(this._createTimeoutError(this._running));
|
|
43
|
-
}
|
|
44
|
-
isTimeExhaustedFor(runnable) {
|
|
45
|
-
const slot = runnable.fixture?.slot || runnable.slot || this._defaultSlot;
|
|
46
|
-
return slot.timeout > 0 && slot.elapsed >= slot.timeout - 1;
|
|
47
|
-
}
|
|
48
|
-
async withRunnable(runnable, cb) {
|
|
49
|
-
if (this._running)
|
|
50
|
-
throw new Error(`Internal error: duplicate runnable`);
|
|
51
|
-
const running = this._running = {
|
|
52
|
-
runnable,
|
|
53
|
-
slot: runnable.fixture?.slot || runnable.slot || this._defaultSlot,
|
|
54
|
-
start: (0, import_utils.monotonicTime)(),
|
|
55
|
-
deadline: kMaxDeadline,
|
|
56
|
-
timer: void 0,
|
|
57
|
-
timeoutPromise: new import_utils.ManualPromise()
|
|
58
|
-
};
|
|
59
|
-
let debugTitle = "";
|
|
60
|
-
try {
|
|
61
|
-
if (import_util.debugTest.enabled) {
|
|
62
|
-
debugTitle = runnable.fixture ? `${runnable.fixture.phase} "${runnable.fixture.title}"` : runnable.type;
|
|
63
|
-
const location = runnable.location ? ` at "${(0, import_util.formatLocation)(runnable.location)}"` : ``;
|
|
64
|
-
(0, import_util.debugTest)(`started ${debugTitle}${location}`);
|
|
65
|
-
}
|
|
66
|
-
this._updateTimeout(running);
|
|
67
|
-
return await Promise.race([
|
|
68
|
-
cb(),
|
|
69
|
-
running.timeoutPromise
|
|
70
|
-
]);
|
|
71
|
-
} finally {
|
|
72
|
-
if (running.timer)
|
|
73
|
-
clearTimeout(running.timer);
|
|
74
|
-
running.timer = void 0;
|
|
75
|
-
running.slot.elapsed += (0, import_utils.monotonicTime)() - running.start;
|
|
76
|
-
this._running = void 0;
|
|
77
|
-
if (import_util.debugTest.enabled)
|
|
78
|
-
(0, import_util.debugTest)(`finished ${debugTitle}`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
_updateTimeout(running) {
|
|
82
|
-
if (running.timer)
|
|
83
|
-
clearTimeout(running.timer);
|
|
84
|
-
running.timer = void 0;
|
|
85
|
-
if (this._ignoreTimeouts || !running.slot.timeout) {
|
|
86
|
-
running.deadline = kMaxDeadline;
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
running.deadline = running.start + (running.slot.timeout - running.slot.elapsed);
|
|
90
|
-
const timeout = running.deadline - (0, import_utils.monotonicTime)() + 1;
|
|
91
|
-
if (timeout <= 0)
|
|
92
|
-
running.timeoutPromise.reject(this._createTimeoutError(running));
|
|
93
|
-
else
|
|
94
|
-
running.timer = setTimeout(() => running.timeoutPromise.reject(this._createTimeoutError(running)), timeout);
|
|
95
|
-
}
|
|
96
|
-
defaultSlot() {
|
|
97
|
-
return this._defaultSlot;
|
|
98
|
-
}
|
|
99
|
-
slow() {
|
|
100
|
-
const slot = this._running ? this._running.slot : this._defaultSlot;
|
|
101
|
-
slot.timeout = slot.timeout * 3;
|
|
102
|
-
if (this._running)
|
|
103
|
-
this._updateTimeout(this._running);
|
|
104
|
-
}
|
|
105
|
-
setTimeout(timeout) {
|
|
106
|
-
const slot = this._running ? this._running.slot : this._defaultSlot;
|
|
107
|
-
slot.timeout = timeout;
|
|
108
|
-
if (this._running)
|
|
109
|
-
this._updateTimeout(this._running);
|
|
110
|
-
}
|
|
111
|
-
currentSlotDeadline() {
|
|
112
|
-
return this._running ? this._running.deadline : kMaxDeadline;
|
|
113
|
-
}
|
|
114
|
-
currentSlotType() {
|
|
115
|
-
return this._running ? this._running.runnable.type : "test";
|
|
116
|
-
}
|
|
117
|
-
_createTimeoutError(running) {
|
|
118
|
-
let message = "";
|
|
119
|
-
const timeout = running.slot.timeout;
|
|
120
|
-
const runnable = running.runnable;
|
|
121
|
-
switch (runnable.type) {
|
|
122
|
-
case "test": {
|
|
123
|
-
if (runnable.fixture) {
|
|
124
|
-
if (runnable.fixture.phase === "setup")
|
|
125
|
-
message = `Test timeout of ${timeout}ms exceeded while setting up "${runnable.fixture.title}".`;
|
|
126
|
-
else
|
|
127
|
-
message = `Tearing down "${runnable.fixture.title}" exceeded the test timeout of ${timeout}ms.`;
|
|
128
|
-
} else {
|
|
129
|
-
message = `Test timeout of ${timeout}ms exceeded.`;
|
|
130
|
-
}
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
case "afterEach":
|
|
134
|
-
case "beforeEach":
|
|
135
|
-
message = `Test timeout of ${timeout}ms exceeded while running "${runnable.type}" hook.`;
|
|
136
|
-
break;
|
|
137
|
-
case "beforeAll":
|
|
138
|
-
case "afterAll":
|
|
139
|
-
message = `"${runnable.type}" hook timeout of ${timeout}ms exceeded.`;
|
|
140
|
-
break;
|
|
141
|
-
case "teardown": {
|
|
142
|
-
if (runnable.fixture)
|
|
143
|
-
message = `Worker teardown timeout of ${timeout}ms exceeded while ${runnable.fixture.phase === "setup" ? "setting up" : "tearing down"} "${runnable.fixture.title}".`;
|
|
144
|
-
else
|
|
145
|
-
message = `Worker teardown timeout of ${timeout}ms exceeded.`;
|
|
146
|
-
break;
|
|
147
|
-
}
|
|
148
|
-
case "skip":
|
|
149
|
-
case "slow":
|
|
150
|
-
case "fixme":
|
|
151
|
-
case "fail":
|
|
152
|
-
message = `"${runnable.type}" modifier timeout of ${timeout}ms exceeded.`;
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
const fixtureWithSlot = runnable.fixture?.slot ? runnable.fixture : void 0;
|
|
156
|
-
if (fixtureWithSlot)
|
|
157
|
-
message = `Fixture "${fixtureWithSlot.title}" timeout of ${timeout}ms exceeded during ${fixtureWithSlot.phase}.`;
|
|
158
|
-
message = import_utils2.colors.red(message);
|
|
159
|
-
const location = (fixtureWithSlot || runnable).location;
|
|
160
|
-
const error = new TimeoutManagerError(message);
|
|
161
|
-
error.name = "";
|
|
162
|
-
error.stack = message + (location ? `
|
|
163
|
-
at ${location.file}:${location.line}:${location.column}` : "");
|
|
164
|
-
return error;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
class TimeoutManagerError extends Error {
|
|
168
|
-
}
|
|
169
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
170
|
-
0 && (module.exports = {
|
|
171
|
-
TimeoutManager,
|
|
172
|
-
TimeoutManagerError,
|
|
173
|
-
kMaxDeadline
|
|
174
|
-
});
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var timeoutManager_exports = {};
|
|
20
|
+
__export(timeoutManager_exports, {
|
|
21
|
+
TimeoutManager: () => TimeoutManager,
|
|
22
|
+
TimeoutManagerError: () => TimeoutManagerError,
|
|
23
|
+
kMaxDeadline: () => kMaxDeadline
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(timeoutManager_exports);
|
|
26
|
+
var import_utils = require("patchright-bun-core/lib/utils");
|
|
27
|
+
var import_utils2 = require("patchright-bun-core/lib/utils");
|
|
28
|
+
var import_util = require("../util");
|
|
29
|
+
const kMaxDeadline = 2147483647;
|
|
30
|
+
class TimeoutManager {
|
|
31
|
+
constructor(timeout) {
|
|
32
|
+
this._ignoreTimeouts = false;
|
|
33
|
+
this._defaultSlot = { timeout, elapsed: 0 };
|
|
34
|
+
}
|
|
35
|
+
setIgnoreTimeouts() {
|
|
36
|
+
this._ignoreTimeouts = true;
|
|
37
|
+
if (this._running)
|
|
38
|
+
this._updateTimeout(this._running);
|
|
39
|
+
}
|
|
40
|
+
interrupt() {
|
|
41
|
+
if (this._running)
|
|
42
|
+
this._running.timeoutPromise.reject(this._createTimeoutError(this._running));
|
|
43
|
+
}
|
|
44
|
+
isTimeExhaustedFor(runnable) {
|
|
45
|
+
const slot = runnable.fixture?.slot || runnable.slot || this._defaultSlot;
|
|
46
|
+
return slot.timeout > 0 && slot.elapsed >= slot.timeout - 1;
|
|
47
|
+
}
|
|
48
|
+
async withRunnable(runnable, cb) {
|
|
49
|
+
if (this._running)
|
|
50
|
+
throw new Error(`Internal error: duplicate runnable`);
|
|
51
|
+
const running = this._running = {
|
|
52
|
+
runnable,
|
|
53
|
+
slot: runnable.fixture?.slot || runnable.slot || this._defaultSlot,
|
|
54
|
+
start: (0, import_utils.monotonicTime)(),
|
|
55
|
+
deadline: kMaxDeadline,
|
|
56
|
+
timer: void 0,
|
|
57
|
+
timeoutPromise: new import_utils.ManualPromise()
|
|
58
|
+
};
|
|
59
|
+
let debugTitle = "";
|
|
60
|
+
try {
|
|
61
|
+
if (import_util.debugTest.enabled) {
|
|
62
|
+
debugTitle = runnable.fixture ? `${runnable.fixture.phase} "${runnable.fixture.title}"` : runnable.type;
|
|
63
|
+
const location = runnable.location ? ` at "${(0, import_util.formatLocation)(runnable.location)}"` : ``;
|
|
64
|
+
(0, import_util.debugTest)(`started ${debugTitle}${location}`);
|
|
65
|
+
}
|
|
66
|
+
this._updateTimeout(running);
|
|
67
|
+
return await Promise.race([
|
|
68
|
+
cb(),
|
|
69
|
+
running.timeoutPromise
|
|
70
|
+
]);
|
|
71
|
+
} finally {
|
|
72
|
+
if (running.timer)
|
|
73
|
+
clearTimeout(running.timer);
|
|
74
|
+
running.timer = void 0;
|
|
75
|
+
running.slot.elapsed += (0, import_utils.monotonicTime)() - running.start;
|
|
76
|
+
this._running = void 0;
|
|
77
|
+
if (import_util.debugTest.enabled)
|
|
78
|
+
(0, import_util.debugTest)(`finished ${debugTitle}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_updateTimeout(running) {
|
|
82
|
+
if (running.timer)
|
|
83
|
+
clearTimeout(running.timer);
|
|
84
|
+
running.timer = void 0;
|
|
85
|
+
if (this._ignoreTimeouts || !running.slot.timeout) {
|
|
86
|
+
running.deadline = kMaxDeadline;
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
running.deadline = running.start + (running.slot.timeout - running.slot.elapsed);
|
|
90
|
+
const timeout = running.deadline - (0, import_utils.monotonicTime)() + 1;
|
|
91
|
+
if (timeout <= 0)
|
|
92
|
+
running.timeoutPromise.reject(this._createTimeoutError(running));
|
|
93
|
+
else
|
|
94
|
+
running.timer = setTimeout(() => running.timeoutPromise.reject(this._createTimeoutError(running)), timeout);
|
|
95
|
+
}
|
|
96
|
+
defaultSlot() {
|
|
97
|
+
return this._defaultSlot;
|
|
98
|
+
}
|
|
99
|
+
slow() {
|
|
100
|
+
const slot = this._running ? this._running.slot : this._defaultSlot;
|
|
101
|
+
slot.timeout = slot.timeout * 3;
|
|
102
|
+
if (this._running)
|
|
103
|
+
this._updateTimeout(this._running);
|
|
104
|
+
}
|
|
105
|
+
setTimeout(timeout) {
|
|
106
|
+
const slot = this._running ? this._running.slot : this._defaultSlot;
|
|
107
|
+
slot.timeout = timeout;
|
|
108
|
+
if (this._running)
|
|
109
|
+
this._updateTimeout(this._running);
|
|
110
|
+
}
|
|
111
|
+
currentSlotDeadline() {
|
|
112
|
+
return this._running ? this._running.deadline : kMaxDeadline;
|
|
113
|
+
}
|
|
114
|
+
currentSlotType() {
|
|
115
|
+
return this._running ? this._running.runnable.type : "test";
|
|
116
|
+
}
|
|
117
|
+
_createTimeoutError(running) {
|
|
118
|
+
let message = "";
|
|
119
|
+
const timeout = running.slot.timeout;
|
|
120
|
+
const runnable = running.runnable;
|
|
121
|
+
switch (runnable.type) {
|
|
122
|
+
case "test": {
|
|
123
|
+
if (runnable.fixture) {
|
|
124
|
+
if (runnable.fixture.phase === "setup")
|
|
125
|
+
message = `Test timeout of ${timeout}ms exceeded while setting up "${runnable.fixture.title}".`;
|
|
126
|
+
else
|
|
127
|
+
message = `Tearing down "${runnable.fixture.title}" exceeded the test timeout of ${timeout}ms.`;
|
|
128
|
+
} else {
|
|
129
|
+
message = `Test timeout of ${timeout}ms exceeded.`;
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case "afterEach":
|
|
134
|
+
case "beforeEach":
|
|
135
|
+
message = `Test timeout of ${timeout}ms exceeded while running "${runnable.type}" hook.`;
|
|
136
|
+
break;
|
|
137
|
+
case "beforeAll":
|
|
138
|
+
case "afterAll":
|
|
139
|
+
message = `"${runnable.type}" hook timeout of ${timeout}ms exceeded.`;
|
|
140
|
+
break;
|
|
141
|
+
case "teardown": {
|
|
142
|
+
if (runnable.fixture)
|
|
143
|
+
message = `Worker teardown timeout of ${timeout}ms exceeded while ${runnable.fixture.phase === "setup" ? "setting up" : "tearing down"} "${runnable.fixture.title}".`;
|
|
144
|
+
else
|
|
145
|
+
message = `Worker teardown timeout of ${timeout}ms exceeded.`;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
case "skip":
|
|
149
|
+
case "slow":
|
|
150
|
+
case "fixme":
|
|
151
|
+
case "fail":
|
|
152
|
+
message = `"${runnable.type}" modifier timeout of ${timeout}ms exceeded.`;
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
const fixtureWithSlot = runnable.fixture?.slot ? runnable.fixture : void 0;
|
|
156
|
+
if (fixtureWithSlot)
|
|
157
|
+
message = `Fixture "${fixtureWithSlot.title}" timeout of ${timeout}ms exceeded during ${fixtureWithSlot.phase}.`;
|
|
158
|
+
message = import_utils2.colors.red(message);
|
|
159
|
+
const location = (fixtureWithSlot || runnable).location;
|
|
160
|
+
const error = new TimeoutManagerError(message);
|
|
161
|
+
error.name = "";
|
|
162
|
+
error.stack = message + (location ? `
|
|
163
|
+
at ${location.file}:${location.line}:${location.column}` : "");
|
|
164
|
+
return error;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
class TimeoutManagerError extends Error {
|
|
168
|
+
}
|
|
169
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
170
|
+
0 && (module.exports = {
|
|
171
|
+
TimeoutManager,
|
|
172
|
+
TimeoutManagerError,
|
|
173
|
+
kMaxDeadline
|
|
174
|
+
});
|
package/lib/worker/util.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var util_exports = {};
|
|
20
|
-
__export(util_exports, {
|
|
21
|
-
testInfoError: () => testInfoError
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(util_exports);
|
|
24
|
-
var import_util = require("../util");
|
|
25
|
-
function testInfoError(error) {
|
|
26
|
-
return (0, import_util.serializeError)(error);
|
|
27
|
-
}
|
|
28
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
-
0 && (module.exports = {
|
|
30
|
-
testInfoError
|
|
31
|
-
});
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var util_exports = {};
|
|
20
|
+
__export(util_exports, {
|
|
21
|
+
testInfoError: () => testInfoError
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(util_exports);
|
|
24
|
+
var import_util = require("../util");
|
|
25
|
+
function testInfoError(error) {
|
|
26
|
+
return (0, import_util.serializeError)(error);
|
|
27
|
+
}
|
|
28
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
+
0 && (module.exports = {
|
|
30
|
+
testInfoError
|
|
31
|
+
});
|