diff --git a/playwright/e2e/launch/launch.spec.ts b/playwright/e2e/launch/launch.spec.ts index 78fca81..fb1d371 100644 --- a/playwright/e2e/launch/launch.spec.ts +++ b/playwright/e2e/launch/launch.spec.ts @@ -11,16 +11,18 @@ import { platform } from "node:os"; import { test, expect } from "../../element-desktop-test.js"; declare global { + interface ElectronPlatform { + getEventIndexingManager(): + | { + supportsEventIndexing(): Promise; + } + | undefined; + createPickleKey(userId: string, deviceId: string): Promise; + } + interface Window { mxPlatformPeg: { - get(): { - getEventIndexingManager(): - | { - supportsEventIndexing(): Promise; - } - | undefined; - createPickleKey(userId: string, deviceId: string): Promise; - }; + get(): ElectronPlatform; }; } } diff --git a/playwright/e2e/launch/oidc.spec.ts b/playwright/e2e/launch/oidc.spec.ts new file mode 100644 index 0000000..4b32127 --- /dev/null +++ b/playwright/e2e/launch/oidc.spec.ts @@ -0,0 +1,36 @@ +/* +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-desktop-test.js"; + +declare global { + interface ElectronPlatform { + getOidcCallbackUrl(): URL; + } + + interface Window { + mxPlatformPeg: { + get(): ElectronPlatform; + }; + } +} + +test.describe("OIDC Native", () => { + test.slow(); + + test.beforeEach(async ({ page }) => { + await page.locator(".mx_Welcome").waitFor(); + }); + + test("should use OIDC callback URL without authority component", async ({ page }) => { + await expect( + page.evaluate(() => { + return window.mxPlatformPeg.get().getOidcCallbackUrl().toString(); + }), + ).resolves.toBe("io.element.desktop:/vector/webapp/"); + }); +});