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