Title here
Summary here
Mocha allows you to write asynchronous tests by adding a done callback to the parameters of your test function. It is easy to forget calling this callback after the asynchronous operation is done.
it('should work', function (done) {
fetchData(options, function (error, data) {
expect(error).not.to.be.ok;
expect(data).to.deep.equal({ foo: 'bar' });
// done callback was not called
});
});In this example the done callback was never called and test will time out. This rule checks each FunctionExpression or ArrowFunctionExpression inside of it, it.only, test, test.only, specify, specify.only, before, after, beforeEach, and afterEach.
it('foo', function (done) { });it('foo', function (done) {
asyncFunction(function (err, result) {
expect(err).to.not.exist;
});
});before(function (done) {
asyncInitialization(function () {
initialized = true;
});
});it('foo', function (done) { done(); });it('foo', function (done) {
asyncFunction(function (err, result) {
expect(err).to.not.exist;
done();
});
});before(function (done) {
asyncInitialization(function () {
initialized = true;
done();
});
});If you donβt write asynchronous tests you can safely disable this rule.