@lvce-editor/test-with-playwright-worker 22.40.3 → 22.40.5
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/dist/workerMain.js +34 -21
- package/package.json +1 -1
package/dist/workerMain.js
CHANGED
|
@@ -1786,13 +1786,11 @@ const runTest = async ({
|
|
|
1786
1786
|
}) => {
|
|
1787
1787
|
const start = performance.now();
|
|
1788
1788
|
try {
|
|
1789
|
-
const {
|
|
1790
|
-
expect
|
|
1791
|
-
} = await import('@playwright/test');
|
|
1792
1789
|
const url = getUrlFromTestFile(test, port, traceFocus ?? false, traceRendererWorker ?? false);
|
|
1793
1790
|
await navigateToTest(page, url, browser);
|
|
1794
1791
|
const testOverlay = page.locator('#TestOverlay');
|
|
1795
|
-
await
|
|
1792
|
+
await testOverlay.waitFor({
|
|
1793
|
+
state: 'visible',
|
|
1796
1794
|
timeout
|
|
1797
1795
|
});
|
|
1798
1796
|
const text = await testOverlay.textContent();
|
|
@@ -2170,7 +2168,8 @@ const startWorkerJavascriptCoverage = async (page, targetScript) => {
|
|
|
2170
2168
|
const command = new Promise((resolve, reject) => {
|
|
2171
2169
|
pendingCommands.set(id, {
|
|
2172
2170
|
reject,
|
|
2173
|
-
resolve
|
|
2171
|
+
resolve,
|
|
2172
|
+
sessionId
|
|
2174
2173
|
});
|
|
2175
2174
|
});
|
|
2176
2175
|
void session.send('Target.sendMessageToTarget', {
|
|
@@ -2201,12 +2200,14 @@ const startWorkerJavascriptCoverage = async (page, targetScript) => {
|
|
|
2201
2200
|
callCount: true,
|
|
2202
2201
|
detailed: true
|
|
2203
2202
|
});
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2203
|
+
if (!stopped && sessions.has(sessionId)) {
|
|
2204
|
+
const timer = setInterval(() => {
|
|
2205
|
+
trackPromise(pendingEntries, readTargetCoverage(sendToTarget, sessionId, entries), error => {
|
|
2206
|
+
recordCollectionError(error);
|
|
2207
|
+
});
|
|
2208
|
+
}, 50);
|
|
2209
|
+
timers.set(sessionId, timer);
|
|
2210
|
+
}
|
|
2210
2211
|
}
|
|
2211
2212
|
await sendToTarget(sessionId, 'Runtime.runIfWaitingForDebugger');
|
|
2212
2213
|
if (matches) {
|
|
@@ -2216,6 +2217,10 @@ const startWorkerJavascriptCoverage = async (page, targetScript) => {
|
|
|
2216
2217
|
const onAttached = target => {
|
|
2217
2218
|
trackPromise(tasks, handleAttachedTarget(target), async error => {
|
|
2218
2219
|
recordCollectionError(error);
|
|
2220
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
2221
|
+
if (message.includes('No session with given id') || message.includes('Target closed')) {
|
|
2222
|
+
return;
|
|
2223
|
+
}
|
|
2219
2224
|
try {
|
|
2220
2225
|
await sendToTarget(target.sessionId, 'Runtime.runIfWaitingForDebugger');
|
|
2221
2226
|
} catch {
|
|
@@ -2226,8 +2231,12 @@ const startWorkerJavascriptCoverage = async (page, targetScript) => {
|
|
|
2226
2231
|
const onDetached = ({
|
|
2227
2232
|
sessionId
|
|
2228
2233
|
}) => {
|
|
2229
|
-
|
|
2230
|
-
|
|
2234
|
+
for (const [id, pending] of pendingCommands) {
|
|
2235
|
+
if (pending.sessionId !== sessionId) {
|
|
2236
|
+
continue;
|
|
2237
|
+
}
|
|
2238
|
+
pendingCommands.delete(id);
|
|
2239
|
+
pending.reject(new Error('Target closed'));
|
|
2231
2240
|
}
|
|
2232
2241
|
sessions.delete(sessionId);
|
|
2233
2242
|
const timer = timers.get(sessionId);
|
|
@@ -2251,17 +2260,11 @@ const startWorkerJavascriptCoverage = async (page, targetScript) => {
|
|
|
2251
2260
|
}
|
|
2252
2261
|
stopped = true;
|
|
2253
2262
|
session.off('Target.attachedToTarget', onAttached);
|
|
2254
|
-
session.off('Target.detachedFromTarget', onDetached);
|
|
2255
2263
|
try {
|
|
2256
2264
|
for (const timer of timers.values()) {
|
|
2257
2265
|
clearInterval(timer);
|
|
2258
2266
|
}
|
|
2259
2267
|
timers.clear();
|
|
2260
|
-
await session.send('Target.setAutoAttach', {
|
|
2261
|
-
autoAttach: false,
|
|
2262
|
-
flatten: false,
|
|
2263
|
-
waitForDebuggerOnStart: false
|
|
2264
|
-
});
|
|
2265
2268
|
while (tasks.size > 0) {
|
|
2266
2269
|
await Promise.all(tasks);
|
|
2267
2270
|
}
|
|
@@ -2297,8 +2300,18 @@ const startWorkerJavascriptCoverage = async (page, targetScript) => {
|
|
|
2297
2300
|
}
|
|
2298
2301
|
return result;
|
|
2299
2302
|
} finally {
|
|
2300
|
-
|
|
2301
|
-
|
|
2303
|
+
try {
|
|
2304
|
+
// Disabling auto-attach detaches worker sessions, so finish all coverage commands first.
|
|
2305
|
+
await session.send('Target.setAutoAttach', {
|
|
2306
|
+
autoAttach: false,
|
|
2307
|
+
flatten: false,
|
|
2308
|
+
waitForDebuggerOnStart: false
|
|
2309
|
+
});
|
|
2310
|
+
} finally {
|
|
2311
|
+
session.off('Target.detachedFromTarget', onDetached);
|
|
2312
|
+
session.off('Target.receivedMessageFromTarget', onReceivedMessage);
|
|
2313
|
+
await session.detach();
|
|
2314
|
+
}
|
|
2302
2315
|
}
|
|
2303
2316
|
}
|
|
2304
2317
|
};
|