@house-agency/brewtils
Version:
The Brewery Node.js Utilities (brewtils)
77 lines (62 loc) • 2.08 kB
JavaScript
const chai = require('chai');
const conf = require('../config');
const log = require('../log');
const q = require('q');
const expect = chai.expect;
describe('Log', () => {
const levels = [
'fatal',
'error',
'warn',
'debug'
];
const test_logger = test_levels => {
return test_levels.reduce((promise, test_level) => {
return promise.then(() => {
const deferred = q.defer();
function listener(transport, level, message) {
expect(transport.name).to.equal('console');
expect(level).to.equal(test_level);
expect(message).to.equal('hello world');
deferred.resolve();
}
log.logger.on('logging', listener);
log(test_level, 'hello', 'world', {key: 'value'});
return deferred.promise
.then(() => {
log.logger.removeListener('logging', listener);
});
})
.timeout(1000, 'Timed out!');
}, q());
};
it('shall set logger and log all levels', () => {
return test_logger(levels);
});
it('shall set logger and log fatal level', () => {
return test_logger(['fatal']);
});
it('shall set logger and log error level', () => {
return test_logger(['fatal', 'error']);
});
it('shall set logger and log warn level', () => {
return test_logger(['fatal', 'error', 'warn']);
});
it('shall setup_transports', () => {
log.setup_transports(
[
{
type: 'Loggly',
subdomain: 'test',
token: 'test',
tags: ['bar']
}
],
['foo']
);
test_logger(['debug']);
expect(log.logger.transports.loggly.name).to.equal('loggly');
expect(log.logger.transports.loggly.client.tags)
.to.include.members(['foo', 'bar']);
});
});