@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.
Files changed (2) hide show
  1. package/dist/workerMain.js +32 -17
  2. package/package.json +1 -1
@@ -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
- const timer = setInterval(() => {
2205
- trackPromise(pendingEntries, readTargetCoverage(sendToTarget, sessionId, entries), error => {
2206
- recordCollectionError(error);
2207
- });
2208
- }, 50);
2209
- timers.set(sessionId, timer);
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
- if (!sessions.has(sessionId)) {
2230
- return;
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
- session.off('Target.receivedMessageFromTarget', onReceivedMessage);
2301
- await session.detach();
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
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/test-with-playwright-worker",
3
- "version": "22.40.3",
3
+ "version": "22.40.4",
4
4
  "description": "Worker package for test-with-playwright",
5
5
  "repository": {
6
6
  "type": "git",