mirror of
https://github.com/vector-im/element-web.git
synced 2025-11-09 12:41:07 +01:00
* Fix jitsi widget popout Unfortunately I don't think playwright or jest can write a test for something successfully opening a new tab. Fixes https://github.com/element-hq/element-desktop/issues/2527 * On second thoughts, this is probably overkill * Clarify * Add test * Unused import
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
/*
|
|
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 as base, expect } from "../../element-web-test";
|
|
import { Bot } from "../../pages/bot";
|
|
|
|
const ROOM_NAME = "Jitsi Room";
|
|
|
|
const test = base.extend<{
|
|
bot1: Bot;
|
|
bot2: Bot;
|
|
}>({
|
|
bot2: async ({ page, homeserver }, use, testInfo) => {
|
|
const bot = new Bot(page, homeserver, { displayName: `ByteBot_${testInfo.testId}` });
|
|
await bot.prepareClient(); // eagerly register the bot
|
|
await use(bot);
|
|
},
|
|
});
|
|
|
|
test.describe("Jitsi Calls", () => {
|
|
test.use({
|
|
displayName: "Jimmy",
|
|
botCreateOpts: { displayName: "Bot", autoAcceptInvites: false },
|
|
});
|
|
|
|
test("should be able to pop out a jitsi widget", async ({ page, app, bot, bot2, context }) => {
|
|
const roomId = await app.client.createRoom({
|
|
name: ROOM_NAME,
|
|
invite: [bot.credentials.userId, bot2.credentials.userId],
|
|
});
|
|
|
|
await bot.joinRoom(roomId);
|
|
await bot2.joinRoom(roomId);
|
|
|
|
// open the room
|
|
await app.viewRoomByName(ROOM_NAME);
|
|
|
|
await page.getByRole("button", { name: "Video call" }).click();
|
|
|
|
const pagePromise = context.waitForEvent("page");
|
|
|
|
await page.getByRole("button", { name: "Popout widget" }).click();
|
|
|
|
const newPage = await pagePromise;
|
|
await expect(newPage.getByRole("button", { name: "Join Conference" })).toBeVisible();
|
|
});
|
|
});
|