log4js-node/test/tap/stacktraces-test.js
2017-07-26 08:54:25 +10:00

32 lines
877 B
JavaScript

'use strict';
const test = require('tap').test;
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();
});