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