mirror of
https://github.com/vector-im/element-call.git
synced 2026-01-18 02:32:27 +00:00
76 lines
2.2 KiB
TypeScript
76 lines
2.2 KiB
TypeScript
/*
|
|
Copyright 2025 New Vector Ltd.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|
Please see LICENSE in the repository root for full details.
|
|
*/
|
|
|
|
import { expect, test } from "@playwright/test";
|
|
import { sleep } from "matrix-js-sdk/lib/utils.js";
|
|
|
|
test("Should request JWT token before starting the call", async ({ page }) => {
|
|
await page.goto("/");
|
|
|
|
let sfGetTimestamp = 0;
|
|
let sendStateEventTimestamp = 0;
|
|
await page.route(
|
|
"**/matrix-rtc.m.localhost/livekit/jwt/sfu/get",
|
|
async (route) => {
|
|
await sleep(2000); // Simulate very slow request
|
|
await route.continue();
|
|
sfGetTimestamp = Date.now();
|
|
},
|
|
);
|
|
|
|
await page.route(
|
|
"**/state/org.matrix.msc3401.call.member/**",
|
|
async (route) => {
|
|
await route.continue();
|
|
sendStateEventTimestamp = Date.now();
|
|
},
|
|
);
|
|
|
|
await page.getByTestId("home_callName").click();
|
|
await page.getByTestId("home_callName").fill("HelloCall");
|
|
await page.getByTestId("home_displayName").click();
|
|
await page.getByTestId("home_displayName").fill("John Doe");
|
|
await page.getByTestId("home_go").click();
|
|
|
|
// Join the call
|
|
await page.getByTestId("lobby_joinCall").click();
|
|
await page.waitForTimeout(4000);
|
|
// Ensure that the call is connected
|
|
await page
|
|
.locator("div")
|
|
.filter({ hasText: /^HelloCall$/ })
|
|
.click();
|
|
|
|
expect(sfGetTimestamp).toBeGreaterThan(0);
|
|
expect(sendStateEventTimestamp).toBeGreaterThan(0);
|
|
expect(sfGetTimestamp).toBeLessThan(sendStateEventTimestamp);
|
|
});
|
|
|
|
test("Error when pre-warming the focus are caught by the ErrorBoundary", async ({
|
|
page,
|
|
}) => {
|
|
await page.goto("/");
|
|
|
|
await page.route("**/openid/request_token", async (route) => {
|
|
await route.fulfill({
|
|
status: 418, // Simulate an error not retryable
|
|
});
|
|
});
|
|
|
|
await page.getByTestId("home_callName").click();
|
|
await page.getByTestId("home_callName").fill("HelloCall");
|
|
await page.getByTestId("home_displayName").click();
|
|
await page.getByTestId("home_displayName").fill("John Doe");
|
|
await page.getByTestId("home_go").click();
|
|
|
|
// Join the call
|
|
await page.getByTestId("lobby_joinCall").click();
|
|
|
|
// Should fail
|
|
await expect(page.getByText("Something went wrong")).toBeVisible();
|
|
});
|