to call the callback with error
- <function> to call the callback with error <any>
- <function> to call the callback with error
Asserts that a node.js-style asynchronous function taking a single callback will call it with a truthy value as the first parameter.
function myFailingAsyncFunction(cb) {setTimeout(function () {cb(new Error('Oh dear'));}, 0);}
return expect(myFailingAsyncFunction, 'to call the callback with error');
You can assert the error message is a given string if you provide a string as the second parameter.
return expect(myFailingAsyncFunction,'to call the callback with error','Oh dear');
A regular expression, Error instance, or an object will also work, as the matching uses to satisfy semantics:
return expect(myFailingAsyncFunction,'to call the callback with error',/dear/);
In case of a failing expectation you get the following output:
return expect(myFailingAsyncFunction,'to call the callback with error',new Error('foo'));
expectedfunction myFailingAsyncFunction(cb) {setTimeout(function () {cb(new Error('Oh dear'));}, 0);}to call the callback with error Error('foo')expected Error('Oh dear') to satisfy Error('foo')Error({message:'Oh dear'////////should equal'foo'Oh dearfoo})
The error passed to the callback is also provided as the fulfillment value of the returned promise, so you can do further assertions like this:
function asyncFn(cb) {cb(new Error('yikes'));}return expect(asyncFn, 'to call the callback with error').then(function (err) {// err will be new Error('yikes')expect(err, 'to have message', 'yikes');});