esrol-errors
Version:
An Errors Class for esrol-server-app. It is used for registering new custom errors with numbers, can get a single or all errors in the registry, has a custom throw error method.
110 lines (88 loc) • 2.96 kB
JavaScript
;
let expect = require('chai').expect;
let Err = require('../lib/errors.js');
let errors = new Err();
describe('Errors', () => {
describe('Register Success...', () => {
describe('Set error with number and description', () => {
it('Should return true', () => {
expect(errors.registerErrorWithNumber('Some message', 1)).to.equal(true);
});
});
describe('Get error message by error number', () => {
it('Should return "Some message"', () => {
expect(errors.getByNumber(1)).to.equal('Some message');
});
it('Should return "Message"', () => {
errors.registerErrorWithNumber('Message', 2);
expect(errors.getByNumber(2)).to.equal('Message');
});
});
describe('Get all registered errors with numbers and descriptions', () => {
let should = `Should have two keys: "1" and "2" with
value: "Some message" and "Message"`;
it(should, () => {
let result = errors.getAllErrors();
expect(result).to.have.all.keys('1', '2');
expect(result[1]).to.equal('Some message');
expect(result[2]).to.equal('Message');
});
});
});
describe('Errors Success...', () => {
it('Should throw an error', () => {
expect(() => { errors.error('Success', 1); }).to.throw(Error);
});
it('Should throw an error with message "Success" and number "1"', () => {
try {
errors.error('Success', 1);
} catch(e) {
expect(e.code).to.equal(1);
expect(e.message).to.equal('Success');
expect(e.explanation).to.equal('Some message');
}
});
it('Should throw an error without error explanation', () => {
try {
errors.error('Success');
} catch(e) {
expect(e.code).to.equal(601);
expect(e.message).to.equal('Success');
expect(e.explanation).to.be.an('undefined');
}
});
it('Should throw an error with message "Success #2" and number "2"', () => {
try {
errors.error('Success #2', 2);
} catch(e) {
expect(e.code).to.equal(2);
expect(e.message).to.equal('Success #2');
expect(e.explanation).to.equal('Message');
}
});
});
let should = 'Throw an error';
describe('Register Fail...', () => {
describe('Register the same number twice', () => {
it(should, () => {
expect(() => {
errors.registerErrorWithNumber('message', 1);
}).to.throw(Error);
});
});
describe('When registerErrorWithNumber with non number', () => {
it(should, () => {
expect(() => {
errors.registerErrorWithNumber('message', 2.3);
}).to.throw(Error);
});
});
describe('When registerErrorWithNumber without description', () => {
it(should, () => {
expect(() => {
errors.registerErrorWithNumber(5);
}).to.throw(Error);
});
});
});
});