it('should respond with an event stream', function(done) { var es = new EventSource(this.url + '/StreamClass/createStream'); var testData = this.data; var result = []; es.on('data', function(e) { result.push(JSON.parse(e.data)); }); es.on('end', function() { expect(testData).to.eql(result); done(); }); });
function(done) { const es = new EventSource(this.url + '/StreamClass/createInfiniteStream'); es.on('data', function(e) { es.close(); process.nextTick(done); }); });
function(done) { const es = new EventSource(this.url + '/StreamClass/createInfiniteStream'); es.on('data', function(e) { es.close(); streamClosed.then(() => done()); }); });
it('should respond with an event stream with errors', function(done) { var es = new EventSource(this.url + '/StreamClass/createStreamWithError'); es.on('error', function(e) { var err; if (e && e.data) { err = JSON.parse(e.data); } else { return done(new Error('no error data!')); } expect(err.message).to.equal('test error'); done(); }); });
it('Create', () => co(function * () { let server = yield apemanApi({ port, configuration: { $api: { pingPong: { ping () { return 'pong' } }, $serverMiddlewares: [ create('/sse/bomb', (client) => co(function * () { let count = 10 while (count >= 0) { client.send('tick', JSON.stringify(count)) yield asleep(100) count-- } client.send('boom!') }), { keep: false }) ], $pathname: '/api/rpc' } } }) assert(server) let client = apemanApiClient(`${baseUrl}/api/rpc`) assert.ok(client) { let pingPong = yield client.connect('pingPong') let pong = yield pingPong.ping() assert.equal(pong, 'pong') } yield asleep(300) let eventSource = new EventSource(`${baseUrl}/sse/bomb`) eventSource.on('tick', (event) => { let { data } = event console.log('tick', data) }) yield asleep(500) yield server.close() }))