diff --git a/test/dateFileAppender-test.js b/test/dateFileAppender-test.js index 01433e7..ae4f157 100644 --- a/test/dateFileAppender-test.js +++ b/test/dateFileAppender-test.js @@ -1,8 +1,9 @@ -var vows = require('vows'), - assert = require('assert'), - path = require('path'), - fs = require('fs'), - log4js = require('../lib/log4js'); +"use strict"; +var vows = require('vows') +, assert = require('assert') +, path = require('path') +, fs = require('fs') +, log4js = require('../lib/log4js'); function removeFile(filename) { return function() { @@ -15,119 +16,126 @@ function removeFile(filename) { } vows.describe('../lib/appenders/dateFile').addBatch({ - 'appender': { - 'adding multiple dateFileAppenders': { - topic: function () { - var listenersCount = process.listeners('exit').length, - dateFileAppender = require('../lib/appenders/dateFile'), - count = 5, - logfile; - - while (count--) { - logfile = path.join(__dirname, 'datefa-default-test' + count + '.log'); - log4js.addAppender(dateFileAppender.appender(logfile)); - } - - return listenersCount; - }, - teardown: function() { - removeFile('datefa-default-test0.log')(); - removeFile('datefa-default-test1.log')(); - removeFile('datefa-default-test2.log')(); - removeFile('datefa-default-test3.log')(); - removeFile('datefa-default-test4.log')(); - }, - - 'should only add one `exit` listener': function (initialCount) { - assert.equal(process.listeners('exit').length, initialCount + 1); - } - }, - - 'with default settings': { - topic: function() { - var that = this, - testFile = path.join(__dirname, 'date-appender-default.log'), - appender = require('../lib/appenders/dateFile').appender(testFile), - logger = log4js.getLogger('default-settings'); - log4js.clearAppenders(); - log4js.addAppender(appender, 'default-settings'); - - logger.info("This should be in the file."); - - setTimeout(function() { - fs.readFile(testFile, "utf8", that.callback); - }, 100); - - }, - teardown: removeFile('date-appender-default.log'), - - 'should write to the file': function(contents) { - assert.include(contents, 'This should be in the file'); - }, - - 'should use the basic layout': function(contents) { - assert.match(contents, /\[\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{3}\] \[INFO\] default-settings - /); - } + 'appender': { + 'adding multiple dateFileAppenders': { + topic: function () { + var listenersCount = process.listeners('exit').length, + dateFileAppender = require('../lib/appenders/dateFile'), + count = 5, + logfile; + + while (count--) { + logfile = path.join(__dirname, 'datefa-default-test' + count + '.log'); + log4js.addAppender(dateFileAppender.appender(logfile)); } - + + return listenersCount; + }, + teardown: function() { + removeFile('datefa-default-test0.log')(); + removeFile('datefa-default-test1.log')(); + removeFile('datefa-default-test2.log')(); + removeFile('datefa-default-test3.log')(); + removeFile('datefa-default-test4.log')(); + }, + + 'should only add one `exit` listener': function (initialCount) { + assert.equal(process.listeners('exit').length, initialCount + 1); + } + }, + + 'with default settings': { + topic: function() { + var that = this, + testFile = path.join(__dirname, 'date-appender-default.log'), + appender = require('../lib/appenders/dateFile').appender(testFile), + logger = log4js.getLogger('default-settings'); + log4js.clearAppenders(); + log4js.addAppender(appender, 'default-settings'); + + logger.info("This should be in the file."); + + setTimeout(function() { + fs.readFile(testFile, "utf8", that.callback); + }, 100); + + }, + teardown: removeFile('date-appender-default.log'), + + 'should write to the file': function(contents) { + assert.include(contents, 'This should be in the file'); + }, + + 'should use the basic layout': function(contents) { + assert.match( + contents, + /\[\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{3}\] \[INFO\] default-settings - / + ); + } } + + } }).addBatch({ 'configure': { 'with dateFileAppender': { - topic: function() { - var log4js = require('../lib/log4js') + topic: function() { + var log4js = require('../lib/log4js') , logger; - //this config file defines one file appender (to ./date-file-test.log) - //and sets the log level for "tests" to WARN + //this config file defines one file appender (to ./date-file-test.log) + //and sets the log level for "tests" to WARN log4js.configure('test/with-dateFile.json'); logger = log4js.getLogger('tests'); - logger.info('this should not be written to the file'); - logger.warn('this should be written to the file'); + logger.info('this should not be written to the file'); + logger.warn('this should be written to the file'); fs.readFile(path.join(__dirname, 'date-file-test.log'), 'utf8', this.callback); - }, + }, teardown: removeFile('date-file-test.log'), - 'should load appender configuration from a json file': function(err, contents) { - assert.include(contents, 'this should be written to the file' + require('os').EOL); + 'should load appender configuration from a json file': function(err, contents) { + assert.include(contents, 'this should be written to the file' + require('os').EOL); assert.equal(contents.indexOf('this should not be written to the file'), -1); - } + } }, - 'with options.alwaysIncludePattern': { - topic: function() { - var log4js = require('../lib/log4js') - , format = require('../lib/date_format') - , logger - , options = { - "appenders": [ - { - "category": "tests", - "type": "dateFile", - "filename": "test/date-file-test", - "pattern": "-from-MM-dd.log", - "alwaysIncludePattern": true, - "layout": { - "type": "messagePassThrough" - } - } - ] - } - , thisTime = format.asString(options.appenders[0].pattern, new Date()); - fs.writeFileSync(path.join(__dirname, 'date-file-test' + thisTime), "this is existing data" + require('os').EOL, 'utf8'); - log4js.clearAppenders(); - log4js.configure(options); - logger = log4js.getLogger('tests'); - logger.warn('this should be written to the file with the appended date'); + 'with options.alwaysIncludePattern': { + topic: function() { + var log4js = require('../lib/log4js') + , format = require('../lib/date_format') + , logger + , options = { + "appenders": [ + { + "category": "tests", + "type": "dateFile", + "filename": "test/date-file-test", + "pattern": "-from-MM-dd.log", + "alwaysIncludePattern": true, + "layout": { + "type": "messagePassThrough" + } + } + ] + } + , thisTime = format.asString(options.appenders[0].pattern, new Date()); + fs.writeFileSync( + path.join(__dirname, 'date-file-test' + thisTime), + "this is existing data" + require('os').EOL, + 'utf8' + ); + log4js.clearAppenders(); + log4js.configure(options); + logger = log4js.getLogger('tests'); + logger.warn('this should be written to the file with the appended date'); this.teardown = removeFile('date-file-test' + thisTime); - fs.readFile(path.join(__dirname, 'date-file-test' + thisTime), 'utf8', this.callback); - }, - 'should create file with the correct pattern': function(contents) { - assert.include(contents, 'this should be written to the file with the appended date'); - }, - 'should not overwrite the file on open (bug found in issue #132)': function(contents) { - assert.include(contents, 'this is existing data'); - } - } + fs.readFile(path.join(__dirname, 'date-file-test' + thisTime), 'utf8', this.callback); + }, + 'should create file with the correct pattern': function(contents) { + assert.include(contents, 'this should be written to the file with the appended date'); + }, + 'should not overwrite the file on open (bug found in issue #132)': function(contents) { + assert.include(contents, 'this is existing data'); + } + } } }).exportTo(module);