-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathonError.spec.js
More file actions
47 lines (38 loc) · 1.27 KB
/
onError.spec.js
File metadata and controls
47 lines (38 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"use strict";
describe("specifying onError", function () {
require("../../lib/nodeerrors");
it("calls the callback if there is no error", function () {
var data = {mytest:true};
function myFunction(callback){
return callback(null, data);
}
var errorHandlerSpy = sinon.spy();
var callbackSpy = sinon.spy();
myFunction(callbackSpy.onError(errorHandlerSpy));
expect(errorHandlerSpy).not.to.be.called;
expect(callbackSpy).to.be.calledWith(null, data);
expect(callbackSpy).to.be.calledOnce;
});
it("calls the error handler if an error is passed", function () {
var error = new Error("test");
function myFunction(callback){
return callback(error);
}
var errorHandlerSpy = sinon.spy();
var callbackSpy = sinon.spy();
myFunction(callbackSpy.onError(errorHandlerSpy));
expect(callbackSpy).not.to.be.called;
expect(errorHandlerSpy).to.be.calledWith(error);
expect(errorHandlerSpy).to.be.calledOnce;
});
it("calls the error handler if an error is thrown in the handler", function () {
var error = new Error("test");
function myFunction(callback){
throw error;
}
var errorHandlerSpy = sinon.spy();
myFunction.onError(errorHandlerSpy)();
expect(errorHandlerSpy).to.be.calledWith(error);
expect(errorHandlerSpy).to.be.calledOnce;
});
});