import WS from 'jest-websocket-mock'; import Stream from '../src/streaming'; describe('Streaming', () => { test('success', async () => { const server = new WS('wss://misskey.test/streaming'); const stream = new Stream('https://misskey.test', { token: 'TOKEN' }); const mainChannelReceived: any[] = []; const main = stream.useSharedConnection('main'); main.on('foo', payload => { mainChannelReceived.push(payload); }); await server.connected; const msg = JSON.parse(await server.nextMessage as string); const mainChannelId = msg.body.id; expect(msg.type).toEqual('connect'); expect(msg.body.channel).toEqual('main'); expect(mainChannelId != null).toEqual(true); server.send(JSON.stringify({ type: 'channel', body: { id: mainChannelId, type: 'foo', body: { bar: 'buzz' } } })); expect(mainChannelReceived[0]).toEqual({ bar: 'buzz' }); }); });