Skip to content

Commit 9b9e16c

Browse files
test: initial test for onlyInstancesOf
1 parent 63916af commit 9b9e16c

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

__tests__/errors.test.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
"use strict";
2+
3+
const UsageError = require("../errors").UsageError;
4+
const onlyInstancesOf = require("../errors").onlyInstancesOf;
5+
6+
describe("onlyInstancesOf", () => {
7+
test("catches specified error", () => {
8+
return Promise.reject(new UsageError("fake usage error"))
9+
.catch(onlyInstancesOf(UsageError, (error) => {
10+
expect(error).toBeInstanceOf(UsageError);
11+
}));
12+
});
13+
});

errors.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
const ES6Error = require("es6-error");
22

3-
exports.onlyInstancesOf = function(errorType, handler) {
4-
return(error) => {
3+
exports.onlyInstancesOf = function (errorType, handler) {
4+
return (error) => {
55
if (error instanceof errorType) {
66
return handler(error);
7+
// eslint-disable-next-line no-else-return
78
} else {
89
console.log(error.stack);
910
process.exit(1);
1011
}
11-
}
12-
}
12+
};
13+
};
1314

1415
exports.UsageError = class UsageError extends ES6Error {
16+
// eslint-disable-next-line no-useless-constructor
1517
constructor(message) {
1618
super(message);
1719
}
18-
}
20+
};

0 commit comments

Comments
 (0)