From 272b18ae02b22f69665c05b713732fb21a6cb44d Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Tue, 9 Apr 2024 16:48:29 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(y-webrtc-signaling)=20test=20signalin?= =?UTF-8?q?g=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Create a e2e testcase to test the signaling server. --- .../__tests__/app-impress/pad-editor.spec.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/frontend/apps/e2e/__tests__/app-impress/pad-editor.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/pad-editor.spec.ts index 5ef8f215..da293602 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/pad-editor.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/pad-editor.spec.ts @@ -17,4 +17,29 @@ test.describe('Pad Editor', () => { await page.locator('.ProseMirror.bn-editor').fill('Hello World'); await expect(page.getByText('Hello World')).toBeVisible(); }); + + test('checks the Pad is connected to the webrtc server', async ({ page }) => { + const webSocketPromise = page.waitForEvent('websocket', (webSocket) => { + return webSocket.url().includes('ws://localhost:4444/'); + }); + + await page.getByText('My mocked pad').first().click(); + await expect(page.locator('h2').getByText('My mocked pad')).toBeVisible(); + + const webSocket = await webSocketPromise; + expect(webSocket.url()).toBe('ws://localhost:4444/'); + + const framesentPromise = webSocket.waitForEvent('framesent'); + + await page.locator('.ProseMirror.bn-editor').click(); + await page.locator('.ProseMirror.bn-editor').fill('Hello World'); + + const framesent = await framesentPromise; + const payload = JSON.parse(framesent.payload as string) as { + type: string; + }; + + const typeCases = ['publish', 'subscribe', 'unsubscribe', 'ping']; + expect(typeCases.includes(payload.type)).toBeTruthy(); + }); });