MCPcopy Index your code
hub / github.com/codeceptjs/CodeceptJS / test

Function test

lib/mocha/asyncWrapper.js:46–109  ·  view source on GitHub ↗
(test)

Source from the content-addressed store, hash-verified

44 * through event system.
45 */
46export function test(test) {
47 const testFn = test.fn
48 if (!testFn) {
49 return test
50 }
51
52 test.timeout(0)
53 test.async = true
54
55 test.fn = function (done) {
56 const doneFn = makeDoneCallableOnce(done)
57 recorder.errHandler(err => {
58 recorder.session.start('teardown')
59 recorder.cleanAsyncErr()
60 if (test.throws) {
61 // check that test should actually fail
62 try {
63 assertThrown(err, test.throws)
64 event.emit(event.test.passed, test)
65 event.emit(event.test.finished, test)
66 recorder.add(doneFn)
67 return
68 } catch (newErr) {
69 err = newErr
70 }
71 }
72 test.err = err
73 event.emit(event.test.failed, test, err)
74 event.emit(event.test.finished, test)
75 recorder.add(() => doneFn(err))
76 })
77
78 event.emit(event.test.started, test)
79
80 getInjectedArguments(testFn, test)
81 .then(args => {
82 // Start recorder to ensure any steps added within test function are executed
83 recorder.startUnlessRunning()
84
85 // Execute test function
86 const result = testFn.call(test, args)
87
88 // Wait for all recorder steps to complete
89 if (result && result.then) {
90 return result.then(() => recorder.promise())
91 }
92 return recorder.promise()
93 })
94 .then(() => {
95 recorder.add('fire test.passed', () => {
96 event.emit(event.test.passed, test)
97 event.emit(event.test.finished, test)
98 })
99 recorder.add('finish test', doneFn)
100 })
101 .catch(err => {
102 recorder.throw(err)
103 })

Callers

nothing calls this directly

Calls 5

getInjectedArgumentsFunction · 0.90
makeDoneCallableOnceFunction · 0.85
timeoutMethod · 0.45
startMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected