log4js-node/test/tap/consoleAppender-test.js
2022-06-23 01:00:07 +08:00

61 lines
1.5 KiB
JavaScript

const { test } = require('tap');
const sandbox = require('@log4js-node/sandboxed-module');
const consoleAppender = require('../../lib/appenders/console');
test('log4js console appender', (batch) => {
batch.test('should export a configure function', (t) => {
t.type(consoleAppender.configure, 'function');
t.end();
});
batch.test('should use default layout if none specified', (t) => {
const messages = [];
const fakeConsole = {
log(msg) {
messages.push(msg);
},
};
const log4js = sandbox.require('../../lib/log4js', {
globals: {
console: fakeConsole,
},
});
log4js.configure({
appenders: { console: { type: 'console' } },
categories: { default: { appenders: ['console'], level: 'DEBUG' } },
});
log4js.getLogger().info('blah');
t.match(messages[0], /.*default.*blah/);
t.end();
});
batch.test('should output to console', (t) => {
const messages = [];
const fakeConsole = {
log(msg) {
messages.push(msg);
},
};
const log4js = sandbox.require('../../lib/log4js', {
globals: {
console: fakeConsole,
},
});
log4js.configure({
appenders: {
console: { type: 'console', layout: { type: 'messagePassThrough' } },
},
categories: { default: { appenders: ['console'], level: 'DEBUG' } },
});
log4js.getLogger().info('blah');
t.equal(messages[0], 'blah');
t.end();
});
batch.end();
});