If I write an asynchronous test using Mocha, all I need to do is to specify the done parameter on the test function:
test('foo', function (done) {...});
My question is: How does Mocha know whether done was given?
The definition of the test function should be something such as
function test(title, fn) {...};
How does Mocha check fn?
It uses the .length
property on the test function.
To illustrate, try this in the Node REPL:
> (function() {}).length
0
> (function(done) {}).length
1
Here's the actual line in the source where this check happens:
this.async = fn && fn.length;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With