Update ghcr.io/element-hq/element-web:develop Docker digest to 9d8d8fc (#4243)

* Update ghcr.io/element-hq/element-web:develop Docker digest to 1850bf6

* Adapt to latest EW

* Reformat

* Next try

* Fix regexp

* Fix DM path

* Next try

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Johannes Marbach <n0-0ne+github@mailbox.org>
This commit is contained in:
renovate[bot]
2026-09-14 08:51:33 +00:00
committed by GitHub
co-authored by Johannes Marbach
parent fe91162869
commit 5d38a13c46
3 changed files with 42 additions and 10 deletions
+2 -2
View File
@@ -19,7 +19,7 @@ services:
- ./backend/playwright_homeserver-othersite.yaml:/data/cfg/homeserver.yaml:Z - ./backend/playwright_homeserver-othersite.yaml:/data/cfg/homeserver.yaml:Z
element-web: element-web:
# Pin to a SHA so that upstream cannot break our tests. Renovate handles regular updates. # Pin to a SHA so that upstream cannot break our tests. Renovate handles regular updates.
image: ghcr.io/element-hq/element-web:develop@sha256:6ed62b2963ae098a1f79521eb516834dcf29452168e281cc359d9cfb4380adf6 image: ghcr.io/element-hq/element-web:develop@sha256:1850bf66c2eab668aedfc48c280dbdeae3a03f0c59946b0631ffa0c97a3716ff
element-web-1: element-web-1:
# Pin to a SHA so that upstream cannot break our tests. Renovate handles regular updates. # Pin to a SHA so that upstream cannot break our tests. Renovate handles regular updates.
image: ghcr.io/element-hq/element-web:develop@sha256:6ed62b2963ae098a1f79521eb516834dcf29452168e281cc359d9cfb4380adf6 image: ghcr.io/element-hq/element-web:develop@sha256:1850bf66c2eab668aedfc48c280dbdeae3a03f0c59946b0631ffa0c97a3716ff
+13 -4
View File
@@ -109,10 +109,15 @@ export const widgetTest = test.extend<MyFixtures>({
await TestHelpers.dismissInviteUnknownUserModal(ewPage1); await TestHelpers.dismissInviteUnknownUserModal(ewPage1);
// Accept the invite // Accept the invite
await TestHelpers.closeReleaseAnnouncement(
ewPage2,
"Introducing Sections",
);
await TestHelpers.expandAllSections(ewPage2);
await expect( await expect(
ewPage2.getByRole("option", { name: "Welcome Room" }), TestHelpers.roomListItem(ewPage2, "Welcome Room"),
).toBeVisible(); ).toBeVisible();
await ewPage2.getByRole("option", { name: "Welcome Room" }).click(); await TestHelpers.roomListItem(ewPage2, "Welcome Room").click();
await ewPage2.getByRole("button", { name: "Accept" }).click(); await ewPage2.getByRole("button", { name: "Accept" }).click();
await expect( await expect(
ewPage2 ewPage2
@@ -152,8 +157,12 @@ export const widgetTest = test.extend<MyFixtures>({
).toBeVisible(); ).toBeVisible();
// Accept the DM invite from brooks // Accept the DM invite from brooks
// This how playwright record selects the DM invite in the room list await TestHelpers.closeReleaseAnnouncement(
await ewPage2.getByRole("button", { name: "Open room" }).click(); ewPage2,
"Introducing Sections",
);
await TestHelpers.expandAllSections(ewPage2);
await TestHelpers.roomListItem(ewPage2, brooksDisplayName).click();
await ewPage2.getByRole("button", { name: "Start chatting" }).click(); await ewPage2.getByRole("button", { name: "Start chatting" }).click();
} }
+27 -4
View File
@@ -11,6 +11,7 @@ import {
type JSHandle, type JSHandle,
type Page, type Page,
type FrameLocator, type FrameLocator,
type Locator,
} from "@playwright/test"; } from "@playwright/test";
import { type MatrixClient } from "matrix-js-sdk"; import { type MatrixClient } from "matrix-js-sdk";
@@ -203,6 +204,16 @@ export class TestHelpers {
} }
} }
public static async expandAllSections(page: Page): Promise<void> {
try {
await page
.getByRole("button", { name: "Expand all sections" })
.click({ timeout: 2000 });
} catch {
// Already expanded or button not present
}
}
public static async createRoom( public static async createRoom(
name: string, name: string,
page: Page, page: Page,
@@ -253,9 +264,9 @@ export class TestHelpers {
roomName: string, roomName: string,
page: Page, page: Page,
): Promise<void> { ): Promise<void> {
await page.getByRole("option", { name: roomName }).click({ await TestHelpers.closeReleaseAnnouncement(page, "Introducing Sections");
timeout: 10000, await TestHelpers.expandAllSections(page);
}); await TestHelpers.roomListItem(page, roomName).click({ timeout: 10000 });
await page.getByRole("button", { name: "Accept" }).click({ await page.getByRole("button", { name: "Accept" }).click({
timeout: 5000, timeout: 5000,
}); });
@@ -350,6 +361,17 @@ export class TestHelpers {
.click(); .click();
} }
/**
* Locates a room in the room list by its name.
*
* Matches on the aria-label prefix because the item's role differs between
* the flat room list (`option`) and the sectioned room list (`button`), and
* the label may carry a suffix such as " invitation.".
*/
public static roomListItem(page: Page, roomName: string): Locator {
return page.locator(`[aria-label^="Open room ${roomName}"]`);
}
/** /**
* Switches to a room in the room list by its name. * Switches to a room in the room list by its name.
* @param page - The EW page * @param page - The EW page
@@ -359,7 +381,8 @@ export class TestHelpers {
page: Page, page: Page,
roomName: string, roomName: string,
): Promise<void> { ): Promise<void> {
await page.getByRole("option", { name: `Open room ${roomName}` }).click(); await TestHelpers.expandAllSections(page);
await TestHelpers.roomListItem(page, roomName).click();
} }
public static async dismissInviteUnknownUserModal(page: Page): Promise<void> { public static async dismissInviteUnknownUserModal(page: Page): Promise<void> {