/* * file-test.js: Tests for instances of the Daily Rotate File transport * * (C) 2010 Charlie Robbins * MIT LICENSE * */ var path = require('path'), vows = require('vows'), fs = require('fs'), assert = require('assert'), winston = require('../../lib/winston'), helpers = require('../helpers'); var transport = require('./transport'); var stream = fs.createWriteStream( path.join(__dirname, '..', 'fixtures', 'logs', 'testfile.log.2012-12-18') ), dailyRotateFileTransport = new (winston.transports.DailyRotateFile)({ filename: path.join(__dirname, '..', 'fixtures', 'logs', 'testfilename.log'), datePattern: '.yyyy-MM-dd' }), streamTransport = new (winston.transports.DailyRotateFile)({ stream: stream }); vows.describe('winston/transports/daily-rotate-file').addBatch({ "An instance of the Daily Rotate File Transport": { "when passed a valid filename": { "should have the proper methods defined": function () { helpers.assertDailyRotateFile(dailyRotateFileTransport); }, "the log() method": helpers.testNpmLevels(dailyRotateFileTransport, "should respond with true", function (ign, err, logged) { assert.isNull(err); assert.isTrue(logged); }) }, "when passed a valid file stream": { "should have the proper methods defined": function () { helpers.assertDailyRotateFile(streamTransport); }, "the log() method": helpers.testNpmLevels(streamTransport, "should respond with true", function (ign, err, logged) { assert.isNull(err); assert.isTrue(logged); }) } } }).addBatch({ "These tests have a non-deterministic end": { topic: function () { setTimeout(this.callback, 200); }, "and this should be fixed before releasing": function () { assert.isTrue(true); } } }).addBatch({ "An instance of the Daily Rotate File Transport": transport(winston.transports.DailyRotateFile, { filename: path.join(__dirname, '..', 'fixtures', 'logs', 'testfile.log'), datePattern: '.2012-12-18' }) }).export(module);