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.
100 lines
3.2 KiB
100 lines
3.2 KiB
/* |
|
* 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);
|
|
|