| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | /* * http-test.js: Tests for instances of the HTTP transport * * MIT LICENSE */var path = require('path'),    http = require('http'),    fs = require('fs'),    hock = require('hock'),    assume = require('assume'),    Http = require('../../lib/winston/transports/http'),    helpers = require('../helpers');var host = '127.0.0.1';function mockHttpServer(opts, done) {  if (!done && typeof opts === 'function') {    done = opts;    opts = {};  }  var mock = hock.createHock();  opts.path = opts.path || 'log';  opts.payload = opts.payload || {    level: 'info',    message: 'hello',    meta: {}  };  mock    .post('/' + opts.path, opts.payload)    .min(1)    .max(1)    .reply(200);  var server = http.createServer(mock.handler);  server.listen(0, '0.0.0.0', done);  return { server, mock };}describe('Http({ host, port, path })', function () {  var context;  var server;  beforeEach(function (done) {    context = mockHttpServer(done);    server = context.server;  });  it('should send logs over HTTP', function (done) {    var port = server.address().port;    var httpTransport = new Http({      host: host,      port: port,      path: 'log'    }).on('error', function (err) {      assume(err).falsy();    }).on('logged', function () {      context.mock.done(function (err) {        if (err) { assume(err).falsy(); }        done();      });    });    httpTransport.log({      level: 'info',      message: 'hello',      meta: {}    }, function (err) {      if (err) { assume(err).falsy(); }    });  });  afterEach(function (done) {    server.close(done.bind(null, null));  });});
 |