Skip to content

Commit b75fb35

Browse files
committed
add event.dispatcher.emit
1 parent 4a8b962 commit b75fb35

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

lib/listener/globalTimeout.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,15 @@ export default function () {
122122
if (typeof timeout !== 'number') return
123123

124124
if (!store.timeouts) {
125-
debug('step', step.toCode().trim(), 'timeout disabled')
125+
debug('step', (step.code || (typeof step.toCode === 'function' ? step.toCode() : step.name)).trim(), 'timeout disabled')
126126
return
127127
}
128128

129129
if (timeout < 0) {
130130
debug('Previous steps timed out, setting timeout to 0.01s')
131131
step.setTimeout(0.01, TIMEOUT_ORDER.testOrSuite)
132132
} else {
133-
debug(`Setting timeout ${timeout}ms for step ${step.toCode().trim()}`)
133+
debug(`Setting timeout ${timeout}ms for step ${(step.code || (typeof step.toCode === 'function' ? step.toCode() : step.name)).trim()}`)
134134
step.setTimeout(timeout, TIMEOUT_ORDER.testOrSuite)
135135
}
136136
})
@@ -158,17 +158,17 @@ export default function () {
158158

159159
event.dispatcher.on(event.step.finished, step => {
160160
if (!store.timeouts) {
161-
debug('step', step.toCode().trim(), 'timeout disabled')
161+
debug('step', (step.code || (typeof step.toCode === 'function' ? step.toCode() : step.name)).trim(), 'timeout disabled')
162162
return
163163
}
164164

165165
if (typeof timeout === 'number') debug('Timeout', timeout)
166166

167-
debug(`step ${step.toCode().trim()}:${step.status} duration`, step.duration)
167+
debug(`step ${(step.code || (typeof step.toCode === 'function' ? step.toCode() : step.name)).trim()}:${step.status} duration`, step.duration)
168168
if (typeof timeout === 'number' && !Number.isNaN(timeout)) timeout -= step.duration
169169

170170
if (typeof timeout === 'number' && timeout <= 0 && recorder.isRunning()) {
171-
debug(`step ${step.toCode().trim()} timed out`)
171+
debug(`step ${(step.code || (typeof step.toCode === 'function' ? step.toCode() : step.name)).trim()} timed out`)
172172
recorder.throw(new TestTimeoutError(currentTimeout))
173173
}
174174
})

lib/step/base.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ class Step {
228228
startTime: step.startTime,
229229
endTime: step.endTime,
230230
parent,
231+
code: step.toCode(),
231232
}
232233
}
233234

lib/workers.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,18 +626,22 @@ class Workers extends EventEmitter {
626626
break
627627
case event.suite.before:
628628
this.emit(event.suite.before, deserializeSuite(message.data))
629+
event.dispatcher.emit(event.suite.before, deserializeSuite(message.data))
629630
break
630631
case event.test.before:
631632
this.emit(event.test.before, deserializeTest(message.data))
633+
event.dispatcher.emit(event.test.before, deserializeTest(message.data))
632634
break
633635
case event.test.started:
634636
this.emit(event.test.started, deserializeTest(message.data))
637+
event.dispatcher.emit(event.test.started, deserializeTest(message.data))
635638
break
636639
case event.test.failed:
637640
// For hook failures, emit immediately as there won't be a test.finished event
638641
// Regular test failures are handled via test.finished to support retries
639642
if (message.data?.hookName) {
640643
this.emit(event.test.failed, deserializeTest(message.data))
644+
event.dispatcher.emit(event.test.failed, deserializeTest(message.data))
641645
}
642646
// Otherwise skip - we'll emit based on finished state
643647
break
@@ -646,6 +650,7 @@ class Workers extends EventEmitter {
646650
break
647651
case event.test.skipped:
648652
this.emit(event.test.skipped, deserializeTest(message.data))
653+
event.dispatcher.emit(event.test.skipped, deserializeTest(message.data))
649654
break
650655
case event.test.finished:
651656
// Handle different types of test completion properly
@@ -669,28 +674,36 @@ class Workers extends EventEmitter {
669674
// For tests without UID, emit immediately
670675
if (isFailed) {
671676
this.emit(event.test.failed, deserializeTest(data))
677+
event.dispatcher.emit(event.test.failed, deserializeTest(data))
672678
} else {
673679
this.emit(event.test.passed, deserializeTest(data))
680+
event.dispatcher.emit(event.test.passed, deserializeTest(data))
674681
}
675682
}
676683

677684
this.emit(event.test.finished, deserializeTest(data))
685+
event.dispatcher.emit(event.test.finished, deserializeTest(data))
678686
}
679687
break
680688
case event.test.after:
681689
this.emit(event.test.after, deserializeTest(message.data))
690+
event.dispatcher.emit(event.test.after, deserializeTest(message.data))
682691
break
683692
case event.step.finished:
684693
this.emit(event.step.finished, message.data)
694+
event.dispatcher.emit(event.step.finished, message.data)
685695
break
686696
case event.step.started:
687697
this.emit(event.step.started, message.data)
698+
event.dispatcher.emit(event.step.started, message.data)
688699
break
689700
case event.step.passed:
690701
this.emit(event.step.passed, message.data)
702+
event.dispatcher.emit(event.step.passed, message.data)
691703
break
692704
case event.step.failed:
693705
this.emit(event.step.failed, message.data, message.data.error)
706+
event.dispatcher.emit(event.step.failed, message.data, message.data.error)
694707
break
695708
case event.hook.failed:
696709
// Hook failures are already reported as test failures by the worker

0 commit comments

Comments
 (0)