Skip to content

Commit a3bde03

Browse files
committed
fix regular mode 3
1 parent 8d5f41c commit a3bde03

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

lib/command/workers/runTests.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,17 +215,33 @@ initPromise = (async function () {
215215
await new Promise(resolve => setTimeout(resolve, 100))
216216
// Remove message listener before closing to prevent event loop hanging
217217
if (global.parentMessageHandler) {
218-
parentPort?.off('message', global.parentMessageHandler)
218+
try {
219+
parentPort?.off('message', global.parentMessageHandler)
220+
} catch (err) {
221+
// Ignore errors when removing listener
222+
}
223+
}
224+
try {
225+
parentPort?.close()
226+
} catch (err) {
227+
// Ignore errors when closing port
219228
}
220-
parentPort?.close()
221229
} else {
222230
// No tests to run, close the worker
223231
console.error(`[Worker ${workerIndex}] ERROR: No tests found after filtering! Assigned ${tests.length} UIDs but none matched.`)
224232
// Remove message listener before closing to prevent event loop hanging
225233
if (global.parentMessageHandler) {
226-
parentPort?.off('message', global.parentMessageHandler)
234+
try {
235+
parentPort?.off('message', global.parentMessageHandler)
236+
} catch (err) {
237+
// Ignore errors when removing listener
238+
}
239+
}
240+
try {
241+
parentPort?.close()
242+
} catch (err) {
243+
// Ignore errors when closing port
227244
}
228-
parentPort?.close()
229245
}
230246
} catch (err) {
231247
if (global.container?.tsFileMapping && fixErrorStack) {

lib/workers.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,7 @@ class Workers extends EventEmitter {
691691
break
692692
case event.step.finished:
693693
this.emit(event.step.finished, message.data)
694+
event.dispatcher.emit(event.step.finished, message.data)
694695
break
695696
case event.step.started:
696697
this.emit(event.step.started, message.data)
@@ -708,6 +709,7 @@ class Workers extends EventEmitter {
708709
// Hook failures are already reported as test failures by the worker
709710
// Just emit the hook.failed event for listeners
710711
this.emit(event.hook.failed, message.data)
712+
event.dispatcher.emit(event.hook.failed, message.data)
711713
break
712714

713715
}
@@ -772,20 +774,16 @@ class Workers extends EventEmitter {
772774
for (const state of states) {
773775
if (state.isFailed) {
774776
this.emit(event.test.failed, deserializeTest(state.data))
775-
event.dispatcher.emit(event.test.failed, deserializeTest(state.data))
776777
} else {
777778
this.emit(event.test.passed, deserializeTest(state.data))
778-
event.dispatcher.emit(event.test.passed, deserializeTest(state.data))
779779
}
780780
}
781781
} else {
782782
// For non-retries (like step failures), emit only the final state
783783
if (lastState.isFailed) {
784784
this.emit(event.test.failed, deserializeTest(lastState.data))
785-
event.dispatcher.emit(event.test.failed, deserializeTest(lastState.data))
786785
} else {
787786
this.emit(event.test.passed, deserializeTest(lastState.data))
788-
event.dispatcher.emit(event.test.passed, deserializeTest(lastState.data))
789787
}
790788
}
791789
}

0 commit comments

Comments
 (0)