diff --git a/test/streaming.ts b/test/streaming.ts new file mode 100644 index 0000000000..65ab449b69 --- /dev/null +++ b/test/streaming.ts @@ -0,0 +1,35 @@ +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' + }); + }); +});