mirror of
https://github.com/Unitech/pm2.git
synced 2025-12-08 20:35:53 +00:00
93 lines
2.1 KiB
JavaScript
93 lines
2.1 KiB
JavaScript
|
|
process.env.DEBUG="interface:*";
|
|
|
|
var should = require('should');
|
|
var assert = require('assert');
|
|
var HttpRequest = require('../../lib/Interactor/HttpRequest.js');
|
|
|
|
var PORT = 8080;
|
|
|
|
function mockIrritableServer(cb) {
|
|
var http = require('http');
|
|
var url = require('url');
|
|
|
|
function handleRequest(req, res) {
|
|
var uri = url.parse(req.url).pathname;
|
|
|
|
if (uri == '/api/node/verifyPM2') {
|
|
// res.writeHead(505, {"Content-Type": "text/json"});
|
|
// return res.end(new Buffer(50).fill('h'));
|
|
// }
|
|
// console.log(uri);
|
|
return false;
|
|
}
|
|
if (uri == '/api/misc/pm2_version') {
|
|
res.writeHead(505);
|
|
return res.end();
|
|
}
|
|
}
|
|
|
|
//Create a server
|
|
var server = http.createServer(handleRequest);
|
|
|
|
//Lets start our server
|
|
server.listen(PORT, function(err){
|
|
if (err) console.error(err);
|
|
cb(null, server);
|
|
});
|
|
}
|
|
|
|
describe('Http requests', function() {
|
|
var _server = null;
|
|
|
|
before(function(done) {
|
|
mockIrritableServer(function(err, server) {
|
|
_server = server;
|
|
done();
|
|
});
|
|
});
|
|
|
|
after(function(done) {
|
|
_server.close(done);
|
|
});
|
|
|
|
describe('POST', function() {
|
|
it('should post to 404 URL', function(done) {
|
|
HttpRequest.post({
|
|
port : 9999,
|
|
url : 'http://keymetrics.io/NOTHING',
|
|
data : { no : 'thing' }
|
|
}, function(err, data) {
|
|
assert(err);
|
|
assert(err.code == 'ENOTFOUND');
|
|
assert(data == null);
|
|
done();
|
|
})
|
|
});
|
|
|
|
it('should timeout after 7secs', function(done) {
|
|
this.timeout(10000);
|
|
HttpRequest.post({
|
|
port : PORT,
|
|
url : '127.0.0.1',
|
|
data : { no : 'thing' }
|
|
}, function(err, data) {
|
|
assert(err);
|
|
assert(err.code == 'ECONNRESET');
|
|
assert(data == null);
|
|
done();
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
// @todo: more behavioral tests (reverse interactor failcheck)
|
|
|
|
// @todo: do more tests when doing changeUrls
|
|
it.skip('should change urls (forcing reconnection)', function(done) {
|
|
InterfaceD.changeUrls('app.km.io', 'app.km.io:4322');
|
|
setTimeout(done, 2000);
|
|
});
|
|
|
|
});
|