log4js-node/test/tap/stacktraces-test.js
2019-08-01 16:57:32 +10:00

30 lines
859 B
JavaScript

const { test } = require("tap");
test("Stacktraces from errors in different VM context", t => {
const log4js = require("../../lib/log4js");
const recorder = require("../../lib/appenders/recording");
const layout = require("../../lib/layouts").basicLayout;
const vm = require("vm");
log4js.configure({
appenders: { vcr: { type: "recording" } },
categories: { default: { appenders: ["vcr"], level: "debug" } }
});
const logger = log4js.getLogger();
try {
// Access not defined variable.
vm.runInNewContext("myVar();", {}, "myfile.js");
} catch (e) {
// Expect to have a stack trace printed.
logger.error(e);
}
const events = recorder.replay();
// recording appender events do not go through layouts, so let's do it
const output = layout(events[0]);
t.match(output, "stacktraces-test.js");
t.end();
});