diff --git a/test/gelfAppender-test.js b/test/gelfAppender-test.js index 3273212..1f45f33 100644 --- a/test/gelfAppender-test.js +++ b/test/gelfAppender-test.js @@ -1,138 +1,139 @@ +"use strict"; var vows = require('vows') , assert = require('assert') , sandbox = require('sandboxed-module') , log4js = require('../lib/log4js') , setupLogging = function(options, category, compressedLength) { - var fakeDgram = { - sent: false, - socket: { - packetLength: 0, - close: function() { - }, - send: function(pkt, offset, pktLength, port, host) { - fakeDgram.sent = true; - this.packet = pkt; - this.offset = offset; - this.packetLength = pktLength; - this.port = port; - this.host = host; - } - }, - createSocket: function(type) { - this.type = type; - return this.socket; - } - } - , fakeZlib = { - gzip: function(objectToCompress, callback) { - fakeZlib.uncompressed = objectToCompress; - if (compressedLength) { - callback(null, { length: compressedLength }); - } else { - callback(null, "I've been compressed"); - } + var fakeDgram = { + sent: false, + socket: { + packetLength: 0, + close: function() { + }, + send: function(pkt, offset, pktLength, port, host) { + fakeDgram.sent = true; + this.packet = pkt; + this.offset = offset; + this.packetLength = pktLength; + this.port = port; + this.host = host; } + }, + createSocket: function(type) { + this.type = type; + return this.socket; + } + } + , fakeZlib = { + gzip: function(objectToCompress, callback) { + fakeZlib.uncompressed = objectToCompress; + if (compressedLength) { + callback(null, { length: compressedLength }); + } else { + callback(null, "I've been compressed"); + } + } } , appender = sandbox.require('../lib/appenders/gelf', { - requires: { - dgram: fakeDgram, - zlib: fakeZlib - } + requires: { + dgram: fakeDgram, + zlib: fakeZlib + } }); - - log4js.clearAppenders(); - log4js.addAppender(appender.configure(options || {}), category || "gelf-test"); - return { - dgram: fakeDgram, - compress: fakeZlib, - logger: log4js.getLogger(category || "gelf-test") - }; + + log4js.clearAppenders(); + log4js.addAppender(appender.configure(options || {}), category || "gelf-test"); + return { + dgram: fakeDgram, + compress: fakeZlib, + logger: log4js.getLogger(category || "gelf-test") + }; }; //log4js.configure({ doNotReplaceConsole: true }); vows.describe('log4js gelfAppender').addBatch({ - - 'with default gelfAppender settings': { - topic: function() { - var setup = setupLogging(); - setup.logger.info("This is a test"); - return setup; - }, - 'the dgram packet': { - topic: function(setup) { - return setup.dgram; - }, - 'should be sent via udp to the localhost gelf server': function(dgram) { - assert.equal(dgram.type, "udp4"); - assert.equal(dgram.socket.host, "localhost"); - assert.equal(dgram.socket.port, 12201); - assert.equal(dgram.socket.offset, 0); - assert.ok(dgram.socket.packetLength > 0, "Received blank message"); - }, - 'should be compressed': function(dgram) { - assert.equal(dgram.socket.packet, "I've been compressed"); - } - }, - 'the uncompressed log message': { - topic: function(setup) { - var message = JSON.parse(setup.compress.uncompressed); - return message; - }, - 'should be in the gelf format': function(message) { - assert.equal(message.version, '1.0'); - assert.equal(message.host, require('os').hostname()); - assert.equal(message.level, 6); //INFO - assert.equal(message.facility, 'nodejs-server'); - assert.equal(message.full_message, message.short_message); - assert.equal(message.full_message, 'This is a test'); - } - } + + 'with default gelfAppender settings': { + topic: function() { + var setup = setupLogging(); + setup.logger.info("This is a test"); + return setup; }, - 'with a message longer than 8k': { - topic: function() { - var setup = setupLogging(undefined, undefined, 10240); - setup.logger.info("Blah."); - return setup; - }, - 'the dgram packet': { - topic: function(setup) { - return setup.dgram; - }, - 'should not be sent': function(dgram) { - assert.equal(dgram.sent, false); - } - } + 'the dgram packet': { + topic: function(setup) { + return setup.dgram; + }, + 'should be sent via udp to the localhost gelf server': function(dgram) { + assert.equal(dgram.type, "udp4"); + assert.equal(dgram.socket.host, "localhost"); + assert.equal(dgram.socket.port, 12201); + assert.equal(dgram.socket.offset, 0); + assert.ok(dgram.socket.packetLength > 0, "Received blank message"); + }, + 'should be compressed': function(dgram) { + assert.equal(dgram.socket.packet, "I've been compressed"); + } }, - 'with non-default options': { - topic: function() { - var setup = setupLogging({ - host: 'somewhere', - port: 12345, - hostname: 'cheese', - facility: 'nonsense' - }); - setup.logger.debug("Just testing."); - return setup; - }, - 'the dgram packet': { - topic: function(setup) { - return setup.dgram; - }, - 'should pick up the options': function(dgram) { - assert.equal(dgram.socket.host, 'somewhere'); - assert.equal(dgram.socket.port, 12345); - } - }, - 'the uncompressed packet': { - topic: function(setup) { - var message = JSON.parse(setup.compress.uncompressed); - return message; - }, - 'should pick up the options': function(message) { - assert.equal(message.host, 'cheese'); - assert.equal(message.facility, 'nonsense'); - } - } + 'the uncompressed log message': { + topic: function(setup) { + var message = JSON.parse(setup.compress.uncompressed); + return message; + }, + 'should be in the gelf format': function(message) { + assert.equal(message.version, '1.0'); + assert.equal(message.host, require('os').hostname()); + assert.equal(message.level, 6); //INFO + assert.equal(message.facility, 'nodejs-server'); + assert.equal(message.full_message, message.short_message); + assert.equal(message.full_message, 'This is a test'); + } } -}).export(module); \ No newline at end of file + }, + 'with a message longer than 8k': { + topic: function() { + var setup = setupLogging(undefined, undefined, 10240); + setup.logger.info("Blah."); + return setup; + }, + 'the dgram packet': { + topic: function(setup) { + return setup.dgram; + }, + 'should not be sent': function(dgram) { + assert.equal(dgram.sent, false); + } + } + }, + 'with non-default options': { + topic: function() { + var setup = setupLogging({ + host: 'somewhere', + port: 12345, + hostname: 'cheese', + facility: 'nonsense' + }); + setup.logger.debug("Just testing."); + return setup; + }, + 'the dgram packet': { + topic: function(setup) { + return setup.dgram; + }, + 'should pick up the options': function(dgram) { + assert.equal(dgram.socket.host, 'somewhere'); + assert.equal(dgram.socket.port, 12345); + } + }, + 'the uncompressed packet': { + topic: function(setup) { + var message = JSON.parse(setup.compress.uncompressed); + return message; + }, + 'should pick up the options': function(message) { + assert.equal(message.host, 'cheese'); + assert.equal(message.facility, 'nonsense'); + } + } + } +}).export(module);