seaport
Version:
service registry and port assignment for clusters
42 lines (31 loc) • 1.01 kB
JavaScript
var test = require('tap').test;
var seaport = require('../');
test('alloc and free', function (t) {
t.plan(6);
var port = Math.floor(Math.random() * 5e4 + 1e4);
var server = seaport.createServer();
var gotPort;
server.once('register', function (alloc) {
t.equal(gotPort, alloc.port);
var ps = ports.query('http');
t.equal(ps.length, 1);
t.equal(ps[0].host, '127.0.0.1');
t.equal(ps[0].port, gotPort);
ports.close();
});
server.once('free', function () {
ports = seaport.connect(port);
server.once('register', function (alloc) {
t.equal(alloc.port, gotPort);
});
ports.register('http', gotPort);
});
server.listen(port);
var ports = seaport.connect(port);
gotPort = ports.register('http');
t.ok(gotPort >= 10000 && gotPort < 65536);
t.on('end', function () {
ports.close();
server.close();
});
});