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.
70 lines
1.7 KiB
70 lines
1.7 KiB
/*
|
|
* http-test.js: Tests for instances of the HTTP transport
|
|
*
|
|
* MIT LICENSE
|
|
*/
|
|
|
|
var path = require('path'),
|
|
vows = require('vows'),
|
|
http = require('http'),
|
|
fs = require('fs'),
|
|
assert = require('assert'),
|
|
winston = require('../../lib/winston'),
|
|
helpers = require('../helpers'),
|
|
hock = require('hock');
|
|
|
|
var transport = require('./transport');
|
|
|
|
var host = '127.0.0.1';
|
|
|
|
vows.describe('winston/transports/http').addBatch({
|
|
"When the HTTP endpoint": {
|
|
topic: function () {
|
|
var mock = this.mock = hock.createHock(),
|
|
self = this;
|
|
|
|
mock
|
|
.post('/log', {
|
|
"method":"collect",
|
|
"params":{
|
|
"level":"info",
|
|
"message":"hello",
|
|
"meta":{}
|
|
}
|
|
})
|
|
.min(1)
|
|
.max(1)
|
|
.reply(200);
|
|
|
|
var server = this.server = http.createServer(mock.handler);
|
|
server.listen(0, '0.0.0.0', this.callback);
|
|
},
|
|
"is running": function (err) {
|
|
assert.ifError(err);
|
|
},
|
|
"an instance of the Http transport": {
|
|
topic: function () {
|
|
|
|
var port = this.server.address().port;
|
|
var self = this,
|
|
httpTransport = new (winston.transports.Http)({
|
|
host: host,
|
|
port: port,
|
|
path: 'log'
|
|
});
|
|
|
|
httpTransport.log('info', 'hello', function (logErr, logged) {
|
|
self.mock.done(function (doneErr) {
|
|
self.callback(null, logErr, logged, doneErr);
|
|
});
|
|
});
|
|
},
|
|
"should log to the specified URL": function (_, err, logged, requested) {
|
|
assert.ifError(err);
|
|
assert.isTrue(logged);
|
|
assert.ifError(requested);
|
|
this.server.close();
|
|
}
|
|
}
|
|
}
|
|
}).export(module);
|
|
|