From 70c97fa8be8cb193f651380b7807110d1c70df84 Mon Sep 17 00:00:00 2001 From: Timo Date: Thu, 3 Apr 2025 15:51:47 +0200 Subject: [PATCH 1/6] Fix lint errors caused by matrix-js-sdl/src import --- playwright/fixtures/widget-user.ts | 2 +- playwright/global.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/playwright/fixtures/widget-user.ts b/playwright/fixtures/widget-user.ts index 391a2dd6..2ac8d3b8 100644 --- a/playwright/fixtures/widget-user.ts +++ b/playwright/fixtures/widget-user.ts @@ -7,7 +7,7 @@ Please see LICENSE in the repository root for full details. import { type Page, test, expect, type JSHandle } from "@playwright/test"; -import type { MatrixClient } from "matrix-js-sdk/src"; +import type { MatrixClient } from "matrix-js-sdk"; export type UserBaseFixture = { mxId: string; diff --git a/playwright/global.d.ts b/playwright/global.d.ts index 2108240e..8620546f 100644 --- a/playwright/global.d.ts +++ b/playwright/global.d.ts @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ -import type * as Matrix from "matrix-js-sdk/src"; +import type * as Matrix from "matrix-js-sdk"; declare global { interface Window { From afced3eb73279f79c09b24ec9e5ef016d9379121 Mon Sep 17 00:00:00 2001 From: Timo Date: Thu, 3 Apr 2025 17:02:48 +0200 Subject: [PATCH 2/6] test fix experiment --- backend/ew.test.config.json | 2 +- playwright/fixtures/widget-user.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/ew.test.config.json b/backend/ew.test.config.json index 7fe0c63f..dbbaccec 100644 --- a/backend/ew.test.config.json +++ b/backend/ew.test.config.json @@ -46,7 +46,7 @@ "preferred_domain": "meet.element.io" }, "element_call": { - "url": "https://localhost:3000", + "url": "https://localhost:3000/room/", "participant_limit": 8, "brand": "Element Call" }, diff --git a/playwright/fixtures/widget-user.ts b/playwright/fixtures/widget-user.ts index 2ac8d3b8..891b18ff 100644 --- a/playwright/fixtures/widget-user.ts +++ b/playwright/fixtures/widget-user.ts @@ -36,7 +36,7 @@ const CONFIG_JSON = { }, element_call: { - url: "https://localhost:3000", + url: "https://localhost:3000/room/", participant_limit: 8, brand: "Element Call", }, From 7561e33e381e08d7934cbdc8b519ba7ca889531d Mon Sep 17 00:00:00 2001 From: Timo Date: Thu, 3 Apr 2025 18:01:43 +0200 Subject: [PATCH 3/6] use localhost ew --- playwright/fixtures/widget-user.ts | 16 ++++++++++++++++ playwright/global.d.ts | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/playwright/fixtures/widget-user.ts b/playwright/fixtures/widget-user.ts index 891b18ff..ee5b1779 100644 --- a/playwright/fixtures/widget-user.ts +++ b/playwright/fixtures/widget-user.ts @@ -73,6 +73,14 @@ export const widgetTest = test.extend({ reducedMotion: "reduce", }); const ewPage1 = await user1Context.newPage(); + await ewPage1.evaluate(() => { + window.mxSettingsStore.setValue( + "Developer.elementCallUrl", + null, + "device", + "https://localhost:3000/room", + ); + }); // Register the first user await ewPage1.goto("http://localhost:8081/#/welcome"); await ewPage1.getByRole("link", { name: "Create Account" }).click(); @@ -100,6 +108,14 @@ export const widgetTest = test.extend({ reducedMotion: "reduce", }); const ewPage2 = await user2Context.newPage(); + await ewPage2.evaluate(() => { + window.mxSettingsStore.setValue( + "Developer.elementCallUrl", + null, + "device", + "https://localhost:3000/room", + ); + }); // Register the second user await ewPage2.goto("http://localhost:8081/#/welcome"); await ewPage2.getByRole("link", { name: "Create Account" }).click(); diff --git a/playwright/global.d.ts b/playwright/global.d.ts index 8620546f..93f38729 100644 --- a/playwright/global.d.ts +++ b/playwright/global.d.ts @@ -12,5 +12,13 @@ declare global { mxMatrixClientPeg: { get(): Matrix.MatrixClient; }; + mxSettingsStore: { + setValue: ( + settingKey: string, + room: string | null, + level: string, + setting: string, + ) => void; + }; } } From c91d9e5790d402c21ee5ba9b510b1906fd4de3e1 Mon Sep 17 00:00:00 2001 From: Timo Date: Thu, 3 Apr 2025 18:06:38 +0200 Subject: [PATCH 4/6] do the setting set later --- playwright/fixtures/widget-user.ts | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/playwright/fixtures/widget-user.ts b/playwright/fixtures/widget-user.ts index ee5b1779..7b4c206e 100644 --- a/playwright/fixtures/widget-user.ts +++ b/playwright/fixtures/widget-user.ts @@ -73,14 +73,6 @@ export const widgetTest = test.extend({ reducedMotion: "reduce", }); const ewPage1 = await user1Context.newPage(); - await ewPage1.evaluate(() => { - window.mxSettingsStore.setValue( - "Developer.elementCallUrl", - null, - "device", - "https://localhost:3000/room", - ); - }); // Register the first user await ewPage1.goto("http://localhost:8081/#/welcome"); await ewPage1.getByRole("link", { name: "Create Account" }).click(); @@ -96,6 +88,14 @@ export const widgetTest = test.extend({ await expect( ewPage1.getByRole("heading", { name: `Welcome ${userA}` }), ).toBeVisible(); + await ewPage1.evaluate(() => { + window.mxSettingsStore.setValue( + "Developer.elementCallUrl", + null, + "device", + "https://localhost:3000/room", + ); + }); const brooksClientHandle = await ewPage1.evaluateHandle(() => window.mxMatrixClientPeg.get(), @@ -108,14 +108,6 @@ export const widgetTest = test.extend({ reducedMotion: "reduce", }); const ewPage2 = await user2Context.newPage(); - await ewPage2.evaluate(() => { - window.mxSettingsStore.setValue( - "Developer.elementCallUrl", - null, - "device", - "https://localhost:3000/room", - ); - }); // Register the second user await ewPage2.goto("http://localhost:8081/#/welcome"); await ewPage2.getByRole("link", { name: "Create Account" }).click(); @@ -131,6 +123,14 @@ export const widgetTest = test.extend({ await expect( ewPage2.getByRole("heading", { name: `Welcome ${userB}` }), ).toBeVisible(); + await ewPage2.evaluate(() => { + window.mxSettingsStore.setValue( + "Developer.elementCallUrl", + null, + "device", + "https://localhost:3000/room", + ); + }); const whistlerClientHandle = await ewPage2.evaluateHandle(() => window.mxMatrixClientPeg.get(), From e9e82ca3e1a9629ed90acd3e98fff7be6867872c Mon Sep 17 00:00:00 2001 From: Valere Date: Fri, 4 Apr 2025 09:12:27 +0200 Subject: [PATCH 5/6] Cleaning + update docker compose pull policy for eweb --- dev-backend-docker-compose.yml | 1 + playwright/fixtures/widget-user.ts | 33 +++++++++++++++--------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/dev-backend-docker-compose.yml b/dev-backend-docker-compose.yml index fa07afde..8d70bfc2 100644 --- a/dev-backend-docker-compose.yml +++ b/dev-backend-docker-compose.yml @@ -70,6 +70,7 @@ services: element-web: image: ghcr.io/element-hq/element-web:develop + pull_policy: always volumes: - ./backend/ew.test.config.json:/app/config.json environment: diff --git a/playwright/fixtures/widget-user.ts b/playwright/fixtures/widget-user.ts index 7b4c206e..09e5be34 100644 --- a/playwright/fixtures/widget-user.ts +++ b/playwright/fixtures/widget-user.ts @@ -60,6 +60,21 @@ const CONFIG_JSON = { }, }; +/** + * Set the Element Call URL in the dev tool settings using `window.mxSettingsStore` via `page.evaluate`. + * @param page + */ +async function setDevToolElementCallDevUrl(page: Page): Promise { + await page.evaluate(() => { + window.mxSettingsStore.setValue( + "Developer.elementCallUrl", + null, + "device", + "https://localhost:3000/room", + ); + }); +} + export const widgetTest = test.extend({ asWidget: async ({ browser, context }, pUse) => { await context.route(`http://localhost:8081/config.json*`, async (route) => { @@ -88,14 +103,7 @@ export const widgetTest = test.extend({ await expect( ewPage1.getByRole("heading", { name: `Welcome ${userA}` }), ).toBeVisible(); - await ewPage1.evaluate(() => { - window.mxSettingsStore.setValue( - "Developer.elementCallUrl", - null, - "device", - "https://localhost:3000/room", - ); - }); + await setDevToolElementCallDevUrl(ewPage1); const brooksClientHandle = await ewPage1.evaluateHandle(() => window.mxMatrixClientPeg.get(), @@ -123,14 +131,7 @@ export const widgetTest = test.extend({ await expect( ewPage2.getByRole("heading", { name: `Welcome ${userB}` }), ).toBeVisible(); - await ewPage2.evaluate(() => { - window.mxSettingsStore.setValue( - "Developer.elementCallUrl", - null, - "device", - "https://localhost:3000/room", - ); - }); + await setDevToolElementCallDevUrl(ewPage2); const whistlerClientHandle = await ewPage2.evaluateHandle(() => window.mxMatrixClientPeg.get(), From 9b945d00f7d4cfe86ebd1d0c833c6b3ed934394c Mon Sep 17 00:00:00 2001 From: Valere Date: Fri, 4 Apr 2025 09:18:58 +0200 Subject: [PATCH 6/6] cleaning: Remove deprecated config option for EC url --- backend/ew.test.config.json | 1 - playwright/fixtures/widget-user.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/backend/ew.test.config.json b/backend/ew.test.config.json index dbbaccec..fac478dd 100644 --- a/backend/ew.test.config.json +++ b/backend/ew.test.config.json @@ -46,7 +46,6 @@ "preferred_domain": "meet.element.io" }, "element_call": { - "url": "https://localhost:3000/room/", "participant_limit": 8, "brand": "Element Call" }, diff --git a/playwright/fixtures/widget-user.ts b/playwright/fixtures/widget-user.ts index 09e5be34..0a422d20 100644 --- a/playwright/fixtures/widget-user.ts +++ b/playwright/fixtures/widget-user.ts @@ -36,7 +36,6 @@ const CONFIG_JSON = { }, element_call: { - url: "https://localhost:3000/room/", participant_limit: 8, brand: "Element Call", },