log4js-node/test/logFacesAppender-test.js
sparklton 09621f0e4a correcting tests
use default process id and host name if not supported by the run time
2016-05-23 00:55:21 +03:00

97 lines
2.6 KiB
JavaScript

"use strict";
var vows = require('vows'),
assert = require('assert'),
log4js = require('../lib/log4js'),
sandbox = require('sandboxed-module');
function setupLogging(category, options) {
var udpSent = {};
var fakeDgram = {
createSocket: function (type) {
return {
send: function(buffer, offset, length, port, host, callback) {
udpSent.date = new Date();
udpSent.host = host;
udpSent.port = port;
udpSent.length = length;
udpSent.offset = 0;
udpSent.buffer = buffer;
callback(undefined, length);
}
};
}
};
var lfsModule = sandbox.require('../lib/appenders/logFacesAppender', {
requires: {
'dgram': fakeDgram
}
});
log4js.clearAppenders();
log4js.addAppender(lfsModule.configure(options), category);
return {
logger: log4js.getLogger(category),
results: udpSent
};
}
vows.describe('logFaces UDP appender').addBatch({
'when logging to logFaces UDP receiver': {
topic: function() {
var setup = setupLogging('myCategory', {
"type": "logFacesAppender",
"application": "LFS-TEST",
"remoteHost": "127.0.0.1",
"port": 55201,
"layout": {
"type": "pattern",
"pattern": "%m"
}
});
setup.logger.warn('Log event #1');
return setup;
},
'an UDP packet should be sent': function (topic) {
assert.equal(topic.results.host, "127.0.0.1");
assert.equal(topic.results.port, 55201);
assert.equal(topic.results.offset, 0);
var json = JSON.parse(topic.results.buffer.toString());
assert.equal(json.a, 'LFS-TEST');
assert.equal(json.m, 'Log event #1');
assert.equal(json.g, 'myCategory');
assert.equal(json.p, 'WARN');
// Assert timestamp, up to hours resolution.
var date = new Date(json.t);
assert.equal(
date.toISOString().substring(0, 14),
topic.results.date.toISOString().substring(0, 14)
);
}
},
'when missing options': {
topic: function() {
var setup = setupLogging('myLogger', {
"type": "logFacesAppender",
});
setup.logger.error('Log event #2');
return setup;
},
'it sets some defaults': function (topic) {
assert.equal(topic.results.host, "127.0.0.1");
assert.equal(topic.results.port, 55201);
var json = JSON.parse(topic.results.buffer.toString());
assert.equal(json.a, "");
assert.equal(json.m, 'Log event #2');
assert.equal(json.g, 'myLogger');
assert.equal(json.p, 'ERROR');
}
}
}).export(module);