From 725c400cb1bb95e1046e2b78a97e507be293599e Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Tue, 9 Apr 2024 13:00:09 +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 | 26 +++++++++++++++++++ 1 file changed, 26 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 5ef8f215f..4ff76efe2 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,30 @@ 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; + data: { type: string }; + }; + + expect(payload.type).toBe('publish'); + expect(payload.data.type).toBe('signal'); + }); });