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(); });