pdfer-job-pusher
Version:
Push new pdf extract jobs out to workers
71 lines (64 loc) • 1.68 kB
JavaScript
var seaport = require('seaport');
var axon = require('axon');
var portfinder = require('portfinder');
var should = require('should');
var inspect = require('eyespect').inspector();
var config = require('nconf');
var Pusher = require('../index');
var logger = require('../lib/logger');
describe('push message', function () {
var seaServer;
var pullSocket;
var pullService;
var pusher;
before(function(done) {
portfinder.getPort(function (err, port) {
should.not.exist(err);
should.exist(port);
config.defaults({
seaport:{
port: port,
host: 'localhost'
}
});
var data = {
config: config,
logger: logger
};
seaServer = startSeaport(config);
pusher = new Pusher(data);
should.exist(pusher);
done();
});
});
after(function () {
seaServer.close();
});
it('should handle workers connecting', function (done) {
// this.slow('4s');
// this.timeout('8s');
var seaPort = config.get('seaport:port');
var ports = seaport.connect(seaPort);
ports.get('pusher', function (ps) {
ps.length.should.eql(1);
var port = ps[0].port;
var pushData = {
foo: 'bar'
};
var pullSocket = axon.socket('pull');
pullSocket.format('json');
pullSocket.connect(port);
pullSocket.on('message', function (msgData) {
pushData.should.eql(msgData);
done();
});
pusher.send(pushData);
});
});
});
function startSeaport(config) {
var seaServer = seaport.createServer();
var seaPort = config.get('seaport:port');
seaServer.listen(seaPort);
return seaServer;
}