99 lines
3.3 KiB
JavaScript
99 lines
3.3 KiB
JavaScript
/*
|
|
* container-test.js: Tests for the Container object
|
|
*
|
|
* (C) 2011 Charlie Robbins
|
|
* MIT LICENSE
|
|
*
|
|
*/
|
|
|
|
var assert = require('assert'),
|
|
fs = require('fs'),
|
|
http = require('http'),
|
|
path = require('path'),
|
|
vows = require('vows'),
|
|
winston = require('../lib/winston'),
|
|
helpers = require('./helpers');
|
|
|
|
vows.describe('winston/container').addBatch({
|
|
"An instance of winston.Container": {
|
|
topic: new winston.Container(),
|
|
"the add() method": {
|
|
topic: function (container) {
|
|
return container.add('default-test');
|
|
},
|
|
"should correctly instantiate a Logger": function (logger) {
|
|
assert.instanceOf(logger, winston.Logger);
|
|
},
|
|
"the get() method": {
|
|
topic: function (logger, container) {
|
|
this.callback.apply(this, arguments);
|
|
},
|
|
"should respond with the logger previously created": function (existing, container) {
|
|
var logger = container.get('default-test');
|
|
assert.isTrue(existing === logger);
|
|
}
|
|
},
|
|
"the has() method": {
|
|
topic: function (logger, container) {
|
|
this.callback.apply(this, arguments);
|
|
},
|
|
"should indicate `default-test` logger exists": function (existing, container) {
|
|
assert.isTrue(container.has('default-test'));
|
|
},
|
|
"should indicate `not-has` logger doesnt exists": function (existing, container) {
|
|
assert.isFalse(container.has('not-has'));
|
|
}
|
|
},
|
|
"the close() method": {
|
|
topic: function (logger, container) {
|
|
this.callback.apply(this, arguments);
|
|
},
|
|
"should remove the specified logger": function (logger, container) {
|
|
container.close('default-test');
|
|
assert.isTrue(!container.loggers['default-test']);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"An instance of winston.Container with explicit transports": {
|
|
topic: function () {
|
|
this.port = 9412;
|
|
this.transports = [
|
|
new winston.transports.Webhook({
|
|
port: this.port
|
|
})
|
|
];
|
|
|
|
this.container = new winston.Container({
|
|
transports: this.transports
|
|
});
|
|
|
|
return null;
|
|
},
|
|
"the get() method": {
|
|
topic: function (container) {
|
|
var server = http.createServer(function (req, res) {
|
|
res.end();
|
|
});
|
|
|
|
server.listen(this.port, this.callback.bind(this, null));
|
|
},
|
|
"should add the logger correctly": function () {
|
|
this.someLogger = this.container.get('some-logger');
|
|
assert.isObject(this.someLogger.transports);
|
|
assert.instanceOf(this.someLogger.transports['webhook'], winston.transports.Webhook);
|
|
assert.strictEqual(this.someLogger.transports['webhook'], this.transports[0]);
|
|
},
|
|
"a second call to get()": {
|
|
"should respond with the same transport object": function () {
|
|
this.someOtherLogger = this.container.get('some-other-logger');
|
|
|
|
assert.isObject(this.someOtherLogger.transports);
|
|
assert.instanceOf(this.someOtherLogger.transports['webhook'], winston.transports.Webhook);
|
|
assert.strictEqual(this.someOtherLogger.transports['webhook'], this.transports[0]);
|
|
assert.strictEqual(this.someOtherLogger.transports['webhook'], this.someLogger.transports['webhook']);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}).export(module); |