diff --git a/playwright/e2e/widgets/permissions-dialog.spec.ts b/playwright/e2e/widgets/permissions-dialog.spec.ts
new file mode 100644
index 0000000000..af0bea9cf7
--- /dev/null
+++ b/playwright/e2e/widgets/permissions-dialog.spec.ts
@@ -0,0 +1,93 @@
+/*
+Copyright 2025 New Vector Ltd.
+
+SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
+Please see LICENSE files in the repository root for full details.
+*/
+
+import { test, expect } from "../../element-web-test";
+
+const DEMO_WIDGET_ID = "demo-widget-id";
+const DEMO_WIDGET_NAME = "Demo Widget";
+const DEMO_WIDGET_TYPE = "demo";
+const ROOM_NAME = "Demo";
+
+const DEMO_WIDGET_HTML = `
+
+
+ Demo Widget
+
+
+
+`;
+
+test.describe("Widger permissions dialog", () => {
+ test.use({
+ displayName: "Mike",
+ });
+
+ let demoWidgetUrl: string;
+ test.beforeEach(async ({ webserver }) => {
+ demoWidgetUrl = webserver.start(DEMO_WIDGET_HTML);
+ });
+
+ test("should be updated if user is re-invited into the room with updated state event", { tag: "@screenshot" }, async ({
+ page,
+ app,
+ user,
+ }) => {
+ const roomId = await app.client.createRoom({
+ name: ROOM_NAME,
+ });
+
+ // setup widget via state event
+ await app.client.sendStateEvent(
+ roomId,
+ "im.vector.modular.widgets",
+ {
+ id: DEMO_WIDGET_ID,
+ creatorUserId: "somebody",
+ type: DEMO_WIDGET_TYPE,
+ name: DEMO_WIDGET_NAME,
+ url: demoWidgetUrl,
+ },
+ DEMO_WIDGET_ID,
+ );
+
+ // set initial layout
+ await app.client.sendStateEvent(
+ roomId,
+ "io.element.widgets.layout",
+ {
+ widgets: {
+ [DEMO_WIDGET_ID]: {
+ container: "top",
+ index: 1,
+ width: 100,
+ height: 0,
+ },
+ },
+ },
+ "",
+ );
+
+ // open the room
+ await app.viewRoomByName(ROOM_NAME);
+ await expect(page.locator(".mx_WidgetCapabilitiesPromptDialog")).toMatchScreenshot("widget-capabilites-prompt.png");
+ });
+});
diff --git a/playwright/snapshots/widgets/permissions-dialog.spec.ts/widget-capabilites-prompt-linux.png b/playwright/snapshots/widgets/permissions-dialog.spec.ts/widget-capabilites-prompt-linux.png
new file mode 100644
index 0000000000..747ffb15ff
Binary files /dev/null and b/playwright/snapshots/widgets/permissions-dialog.spec.ts/widget-capabilites-prompt-linux.png differ