seaport
Version:
service registry and port assignment for clusters
44 lines (32 loc) • 1.11 kB
JavaScript
var seaport = require('../');
var test = require('tap').test;
var destroyer = require('destroyer');
test('multi-availability', function (t) {
t.plan(5);
var server0 = seaport.createServer();
var server1 = seaport.createServer();
var destroy0 = destroyer(server0);
var destroy1 = destroyer(server1);
server0.listen(0);
server1.listen(0);
server1.peer(server0.address().port);
var ports = seaport.connect(server0.address().port);
var wport = ports.register('woo');
setTimeout(function () {
t.equal(ports.query('woo')[0].port, wport);
t.equal(server0.query('woo')[0].port, wport);
t.equal(server1.query('woo')[0].port, wport);
destroy0();
}, 200);
setTimeout(function () {
var mport = ports.register('moo');
setTimeout(function () {
t.equal(ports.query('moo')[0].port, mport);
t.equal(server1.query('moo')[0].port, mport);
}, 2000);
}, 300);
t.on('end', function () {
destroy1();
ports.close();
});
});