From a385bd022701f5ed6402e6f5bbc8db64250e55c1 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 17 May 2021 19:57:04 +0900 Subject: [PATCH] add test --- test/streaming.ts | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/test/streaming.ts b/test/streaming.ts index bfa872c..02cad50 100644 --- a/test/streaming.ts +++ b/test/streaming.ts @@ -2,7 +2,7 @@ import WS from 'jest-websocket-mock'; import Stream from '../src/streaming'; describe('Streaming', () => { - test('success', async () => { + test('useSharedConnection', async () => { const server = new WS('wss://misskey.test/streaming'); const stream = new Stream('https://misskey.test', { token: 'TOKEN' }); const mainChannelReceived: any[] = []; @@ -31,5 +31,41 @@ describe('Streaming', () => { expect(mainChannelReceived[0]).toEqual({ id: 'foo' }); + + server.close(); }); + + test('SharedConnection#dispose', 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('meUpdated', 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); + main.dispose(); + + server.send(JSON.stringify({ + type: 'channel', + body: { + id: mainChannelId, + type: 'meUpdated', + body: { + id: 'foo' + } + } + })); + + expect(mainChannelReceived.length).toEqual(0); + + server.close(); + }); + + // TODO: SharedConnection#dispose して一定時間経ったら disconnect メッセージがサーバーに送られてくるかのテスト });