Skip to content

Commit 0b5c731

Browse files
DavertMikDavertMik
and
DavertMik
authored
fixed event suites (#4852)
Co-authored-by: DavertMik <[email protected]>
1 parent 2139db8 commit 0b5c731

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

lib/mocha/asyncWrapper.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -187,30 +187,34 @@ module.exports.injected = function (fn, suite, hookName) {
187187
* Starts promise chain, so helpers could enqueue their hooks
188188
*/
189189
module.exports.setup = function (suite) {
190+
const { enhanceMochaTest } = require('./test')
190191
return injectHook(() => {
191192
recorder.startUnlessRunning()
192-
event.emit(event.test.before, suite && suite.ctx && suite.ctx.currentTest)
193+
event.emit(event.test.before, enhanceMochaTest(suite?.ctx?.currentTest))
193194
}, suite)
194195
}
195196

196197
module.exports.teardown = function (suite) {
198+
const { enhanceMochaTest } = require('./test')
197199
return injectHook(() => {
198200
recorder.startUnlessRunning()
199-
event.emit(event.test.after, suite && suite.ctx && suite.ctx.currentTest)
201+
event.emit(event.test.after, enhanceMochaTest(suite?.ctx?.currentTest))
200202
}, suite)
201203
}
202204

203205
module.exports.suiteSetup = function (suite) {
206+
const { enhanceMochaSuite } = require('./suite')
204207
return injectHook(() => {
205208
recorder.startUnlessRunning()
206-
event.emit(event.suite.before, suite)
209+
event.emit(event.suite.before, enhanceMochaSuite(suite))
207210
}, suite)
208211
}
209212

210213
module.exports.suiteTeardown = function (suite) {
214+
const { enhanceMochaSuite } = require('./suite')
211215
return injectHook(() => {
212216
recorder.startUnlessRunning()
213-
event.emit(event.suite.after, suite)
217+
event.emit(event.suite.after, enhanceMochaSuite(suite))
214218
}, suite)
215219
}
216220

lib/mocha/suite.js

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const MochaSuite = require('mocha/lib/suite')
77
* Enhances MochaSuite with CodeceptJS specific functionality using composition
88
*/
99
function enhanceMochaSuite(suite) {
10+
if (!suite) suite = new MochaSuite('Suite', null, false)
1011
// already enhanced
1112
if (suite.codeceptjs) return suite
1213

lib/mocha/test.js

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ function createTest(title, fn) {
2121
* @returns {CodeceptJS.Test & Mocha.Test} Enhanced test instance
2222
*/
2323
function enhanceMochaTest(test) {
24+
// if no test, create a dummy one
25+
if (!test) test = createTest('...', () => {})
2426
// already enhanced
2527
if (test.codeceptjs) return test
2628

0 commit comments

Comments
 (0)