101 lines
3.2 KiB
JavaScript
101 lines
3.2 KiB
JavaScript
/*
|
|
* logger-test.js: Tests for instances of the winston Logger
|
|
*
|
|
* (C) 2010 Charlie Robbins
|
|
* MIT LICENSE
|
|
*
|
|
*/
|
|
|
|
var fs = require('fs'),
|
|
path = require('path'),
|
|
vows = require('vows'),
|
|
http = require('http'),
|
|
assert = require('assert'),
|
|
winston = require('../lib/winston'),
|
|
helpers = require('./helpers');
|
|
|
|
vows.describe('winston').addBatch({
|
|
"The winston module": {
|
|
topic: function () {
|
|
winston.default.transports.console.level = 'silly';
|
|
return null;
|
|
},
|
|
"should have the correct methods defined": function () {
|
|
assert.isObject(winston.transports);
|
|
assert.isFunction(winston.Transport);
|
|
assert.isTrue(!winston.transports.Transport);
|
|
assert.isFunction(winston.transports.Console);
|
|
assert.isFunction(winston.transports.File);
|
|
assert.isFunction(winston.transports.Loggly);
|
|
assert.isFunction(winston.transports.Webhook);
|
|
assert.isObject(winston.default.transports.console);
|
|
assert.isFalse(winston.emitErrs);
|
|
assert.isObject(winston.config);
|
|
['Logger', 'add', 'remove', 'extend']
|
|
.concat(Object.keys(winston.config.npm.levels))
|
|
.forEach(function (key) {
|
|
assert.isFunction(winston[key]);
|
|
});
|
|
},
|
|
"it should": {
|
|
topic: function () {
|
|
fs.readFile(path.join(__dirname, '..', 'package.json'), this.callback);
|
|
},
|
|
"have the correct version set": function (err, data) {
|
|
assert.isNull(err);
|
|
data = JSON.parse(data.toString());
|
|
assert.equal(winston.version, data.version);
|
|
}
|
|
},
|
|
"the log() method": helpers.testNpmLevels(winston, "should respond without an error", function (err) {
|
|
assert.isNull(err);
|
|
}),
|
|
"the extend() method called on an empty object": {
|
|
topic: function (logger) {
|
|
var empty = {};
|
|
winston.extend(empty);
|
|
return empty;
|
|
},
|
|
"should define the appropriate methods": function (extended) {
|
|
['log', 'profile', 'startTimer'].concat(Object.keys(winston.config.npm.levels)).forEach(function (method) {
|
|
assert.isFunction(extended[method]);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}).addBatch({
|
|
"The winston module": {
|
|
"the setLevels() method": {
|
|
topic: function () {
|
|
winston.setLevels(winston.config.syslog.levels);
|
|
return null;
|
|
},
|
|
"should have the proper methods defined": function () {
|
|
assert.isObject(winston.transports);
|
|
assert.isFunction(winston.transports.Console);
|
|
assert.isFunction(winston.transports.Loggly);
|
|
assert.isFunction(winston.transports.Webhook);
|
|
assert.isObject(winston.default.transports.console);
|
|
assert.isFalse(winston.emitErrs);
|
|
assert.isObject(winston.config);
|
|
|
|
var newLevels = Object.keys(winston.config.syslog.levels);
|
|
['Logger', 'add', 'remove', 'extend']
|
|
.concat(newLevels)
|
|
.forEach(function (key) {
|
|
assert.isFunction(winston[key]);
|
|
});
|
|
|
|
|
|
Object.keys(winston.config.npm.levels)
|
|
.filter(function (key) {
|
|
return newLevels.indexOf(key) === -1;
|
|
})
|
|
.forEach(function (key) {
|
|
assert.isTrue(typeof winston[key] === 'undefined');
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}).export(module);
|