courtbot-engine
Version:
An engine for courtbot-like functionality to be included in city/county services sites.
85 lines (70 loc) • 2.73 kB
JavaScript
import setup from './setup';
describe(`courtbotError`, () => {
const {expect} = setup();
let testee;
beforeEach(() => {
testee = require(`../src/courtbotError`);
});
it(`a courtbotError should extend Error`, () => {
let testError = new testee.default();
expect(testError instanceof Error).to.equal(true);
});
it(`a courtbotError should have the correct default settings`, () => {
let testSettings = {
type: `general`,
message: `No message listed`,
case: `No case listed`,
api: `No api listed`,
timestamp: `No timestamp listed`,
initialError: null
};
let testError = new testee.default();
expect(testError.type).to.equal(testSettings.type);
expect(testError.message).to.equal(testSettings.message);
expect(testError.case).to.equal(testSettings.case);
expect(testError.api).to.equal(testSettings.api);
expect(testError.timestamp).to.equal(testSettings.timestamp);
expect(testError.initialError).to.deep.equal(testSettings.initialError);
});
it(`courtbotError settings should be set correctly`, () => {
let testSettings = {
type: `test`,
message: `message`,
case: `case`,
api: `api`,
timestamp: Date(),
initialError: `a`
}
let testError = new testee.default(testSettings);
expect(testError.type).to.equal(testSettings.type);
expect(testError.message).to.equal(testSettings.message);
expect(testError.case).to.equal(testSettings.case);
expect(testError.api).to.equal(testSettings.api);
expect(testError.timestamp).to.equal(testSettings.timestamp);
expect(testError.initialError).to.deep.equal(testSettings.initialError);
});
it(`a courtbotError should be throwable and identify itself as a courtbotError`, () => {
try {
throw(new testee.default());
}
catch (err) {
expect(err.isCourtbotError).to.equal(true);
}
});
it(`a courtbotError should not include itself in a stack trace by default`, function stackTraceTest() {
try {
throw(new testee.default());
}
catch (err) {
expect(err.stack).to.not.contain(`new courtbotError`);
}
});
it(`a courtbotError should allow frames farther up the trace to be hidden`, function stackTraceTest() {
try {
throw(new testee.default({}, stackTraceTest));
}
catch (err) {
expect(err.stack).to.not.contain(`stackTraceTest`);
}
});
});