Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
GiladShoham committed Feb 19, 2017
1 parent bca6a56 commit 8008164
Showing 1 changed file with 131 additions and 0 deletions.
131 changes: 131 additions & 0 deletions lib/sevenBoom.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,4 +208,135 @@ describe('Seven Boom features', () => {
expect(error.data).to.include({'key': 'val'});
done();
});

it('working with create function of boom', (done) => {
const opts = [
{
name : 'errorCode',
order: 1
}, {
name : 'timeThrown',
order: 2,
default: null
}, {
name : 'guid',
order: 3,
default: null
}
];

SevenBoom.init(opts);
const err = SevenBoom.create(400, 'my message', {'key': 'val'}, 'myErrCode');
expect(err.output.payload.guid).to.be.a('string');
expect(err.output.payload.timeThrown).to.be.a.dateString();
expect(err.message).to.equal('my message');
expect(err.output.statusCode).to.equal(400);
expect(err.output.payload).to.include({
statusCode: 400,
error: 'Bad Request',
message: 'my message',
errorCode: 'myErrCode'
});
expect(err.data).to.include({'key': 'val'});
done();
});

it('working with wrap function of boom', (done) => {
const opts = [
{
name : 'errorCode',
order: 1
}, {
name : 'timeThrown',
order: 2,
default: null
}, {
name : 'guid',
order: 3,
default: null
}
];

SevenBoom.init(opts);
const error = new Error('ka-boom');
error.xyz = 123;
const err = SevenBoom.wrap(error, 400, undefined, 'myErrCode');
expect(err.xyz).to.equal(123);
expect(err.output.payload.guid).to.be.a('string');
expect(err.output.payload.timeThrown).to.be.a.dateString();
expect(err.message).to.equal('ka-boom');
expect(err.output.statusCode).to.equal(400);
expect(err.output.payload).to.include({
statusCode: 400,
error: 'Bad Request',
message: 'ka-boom',
errorCode: 'myErrCode'
});
done();
});

it('working with methodNotAllowed function of boom', (done) => {
const opts = [
{
name : 'errorCode',
order: 1
}, {
name : 'timeThrown',
order: 2,
default: null
}, {
name : 'guid',
order: 3,
default: null
}
];

SevenBoom.init(opts);
const err = SevenBoom.methodNotAllowed('my message', null, ['GET', 'POST'], 'myErrCode');
expect(err.output.statusCode).to.equal(405);
expect(err.output.headers.Allow).to.equal('GET, POST');
expect(err.output.payload.guid).to.be.a('string');
expect(err.output.payload.timeThrown).to.be.a.dateString();
expect(err.message).to.equal('my message');
expect(err.output.payload).to.include({
statusCode: 405,
error: 'Method Not Allowed',
message: 'my message',
errorCode: 'myErrCode'
});
done();
});

it('working with unauthorized function of boom', (done) => {
const opts = [
{
name : 'errorCode',
order: 1
}, {
name : 'timeThrown',
order: 2,
default: null
}, {
name : 'guid',
order: 3,
default: null
}
];

SevenBoom.init(opts);
const err = SevenBoom.unauthorized('boom', 'Test', { a: 1, b: 'something', c: null, d: 0 }, 'myErrCode');
expect(err.output.statusCode).to.equal(401);
expect(err.output.headers['WWW-Authenticate']).to.equal('Test a="1", b="something", c="", d="0", error="boom"');
expect(err.output.payload.attributes).to.deep.equal({ a: 1, b: 'something', c: '', d: 0, error: 'boom' });
expect(err.output.payload.guid).to.be.a('string');
expect(err.output.payload.timeThrown).to.be.a.dateString();
expect(err.message).to.equal('boom');
expect(err.output.payload).to.include({
statusCode: 401,
error: 'Unauthorized',
message: 'boom',
errorCode: 'myErrCode'
});
done();
});
});

0 comments on commit 8008164

Please sign in to comment.