UNPKG

pdfer-job-pusher

Version:

Push new pdf extract jobs out to workers

71 lines (64 loc) 1.68 kB
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; }