62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
/*
|
|
* custom-timestamp-test.js: Test function as timestamp option for transport `{ timestamp: function () {} }`
|
|
*
|
|
* (C) 2011 Charlie Robbins, Tom Shinnick
|
|
* MIT LICENSE
|
|
*
|
|
*/
|
|
|
|
var assert = require('assert'),
|
|
events = require('events'),
|
|
fs = require('fs'),
|
|
path = require('path'),
|
|
vows = require('vows'),
|
|
winston = require('../lib/winston'),
|
|
helpers = require('./helpers');
|
|
|
|
function assertTimestamp (basename, options) {
|
|
var filename = path.join(__dirname, 'fixtures', 'logs', basename + '.log');
|
|
|
|
try { fs.unlinkSync(filename) }
|
|
catch (ex) { }
|
|
|
|
return {
|
|
topic: function () {
|
|
options.filename = filename;
|
|
var transport = new (winston.transports.File)(options);
|
|
|
|
// We must wait until transport file has emitted the 'flush'
|
|
// event to be sure the file has been created and written
|
|
transport.once('flush', this.callback.bind(this, null, filename));
|
|
transport.log('info', 'When a fake tree falls in the forest...', null, function () {});
|
|
},
|
|
"should log with the appropriate timestamp": function (_, filename) {
|
|
var data = fs.readFileSync(filename, 'utf8');
|
|
assert.isNotNull(data.match(options.pattern));
|
|
}
|
|
}
|
|
}
|
|
|
|
vows.describe('winston/transport/timestamp').addBatch({
|
|
"When timestamp option is used": {
|
|
"with file transport": {
|
|
"with value set to false": assertTimestamp('noTimestamp', {
|
|
pattern: /^info\:/,
|
|
json: false,
|
|
timestamp: false
|
|
}),
|
|
"with value set to true ": assertTimestamp('defaultTimestamp', {
|
|
pattern: /^\d\d? \w{3}/,
|
|
json: false,
|
|
timestamp: true
|
|
}),
|
|
"and function value": assertTimestamp('customTimestamp', {
|
|
pattern: /^\d{8}\./,
|
|
json: false,
|
|
timestamp: function () {
|
|
return '20110803.171657';
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}).export(module); |