UNPKG

noflo-runtime-websocket

Version:

NoFlo runtime for execution on Node.js over WebSockets

44 lines (41 loc) 1.26 kB
const { spawn, exec } = require('child_process'); const path = require('path'); const fbpHealthCheck = require('fbp-protocol-healthcheck'); function healthCheck(callback) { fbpHealthCheck('ws://localhost:8080') .then(() => callback(), () => healthCheck(callback)); } describe('FBP Protocol Compatibility', () => { const prog = path.resolve(__dirname, '../bin/noflo-websocket-runtime'); const tester = path.resolve(__dirname, '../node_modules/.bin/fbp-test --colors'); const runtimeSecret = process.env.FBP_PROTOCOL_SECRET || 'noflo-runtime-websocket'; let progProcess; before('start runtime', (done) => { progProcess = spawn(prog, [ `--secret=${runtimeSecret}`, ]); progProcess.stdout.pipe(process.stdout); progProcess.stderr.pipe(process.stderr); healthCheck(done); }); after('stop runtime', (done) => { if (!progProcess) { done(); return; } process.kill(progProcess.pid); done(); }); it('should pass the test suite', (done) => { exec(tester, { env: { ...process.env, FBP_PROTOCOL_SECRET: runtimeSecret, }, }, (err, stdout, stderr) => { console.log(stdout); console.error(stderr); done(err); }); }).timeout(60000); });