modified the config to own the connectionPool, transport, and a few other objects
This commit is contained in:
80
test/unit/es_server.test.js
Normal file
80
test/unit/es_server.test.js
Normal file
@ -0,0 +1,80 @@
|
||||
|
||||
var EsServer = require('../mocks/es_server');
|
||||
var _ = require('../../src/lib/utils');
|
||||
var http = require('http');
|
||||
|
||||
describe('EsServer Mock', function () {
|
||||
|
||||
it('should emit an online event when ready, passing it\'s port number', function (done) {
|
||||
var server = new EsServer();
|
||||
server.on('online', function (port) {
|
||||
port.should.have.type('number');
|
||||
server.shutdown(done);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when it\'s online', function () {
|
||||
var server;
|
||||
var port;
|
||||
|
||||
function makeRequest(opts, respCb) {
|
||||
opts = _.defaults(opts || {},{
|
||||
hostname: 'localhost',
|
||||
port: port
|
||||
});
|
||||
|
||||
var response = null;
|
||||
var req = http.request(opts, function (incomming) {
|
||||
response = '';
|
||||
|
||||
incomming.on('data', function (chunk) {
|
||||
response+= chunk;
|
||||
});
|
||||
|
||||
incomming.on('end', function () {
|
||||
if (incomming.headers['content-type'] === 'application/json') {
|
||||
try {
|
||||
respCb(null, JSON.parse(response), incomming.statusCode);
|
||||
} catch (e) {
|
||||
respCb(e, response, incomming.statusCode);
|
||||
}
|
||||
} else {
|
||||
respCb(null, response, incomming.statusCode);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
req.on('error', respCb);
|
||||
|
||||
req.end();
|
||||
}
|
||||
|
||||
before(function (done) {
|
||||
server = new EsServer();
|
||||
server.on('online', function (_port) {
|
||||
port = _port;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
after(function (done) {
|
||||
server.shutdown(done);
|
||||
});
|
||||
|
||||
it('should respond with json to a ping', function (done) {
|
||||
makeRequest({
|
||||
path: '/'
|
||||
}, function (err, resp, status) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
status.should.be.exactly(200);
|
||||
resp.version.number.should.match(/^\d+\.\d+\.\d+/);
|
||||
done();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user