UNPKG

@house-agency/brewtils

Version:

The Brewery Node.js Utilities (brewtils)

77 lines (62 loc) 2.08 kB
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']); }); });