You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
/* |
|
* 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); |