mirror of
https://github.com/vector-im/element-web.git
synced 2025-11-28 22:11:41 +01:00
54 lines
2.1 KiB
TypeScript
54 lines
2.1 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 { type Page } from "@playwright/test";
|
|
|
|
import { test, expect } from "../../../element-web-test";
|
|
|
|
test.describe("Search section of the room list", () => {
|
|
test.use({
|
|
labsFlags: ["feature_new_room_list"],
|
|
});
|
|
|
|
/**
|
|
* Get the search section of the room list
|
|
* @param page
|
|
*/
|
|
function getSearchSection(page: Page) {
|
|
return page.getByRole("search");
|
|
}
|
|
|
|
test.beforeEach(async ({ page, app, user }) => {
|
|
// The notification toast is displayed above the search section
|
|
await app.closeNotificationToast();
|
|
});
|
|
|
|
test("should render the search section", { tag: "@screenshot" }, async ({ page, app, user }) => {
|
|
const searchSection = getSearchSection(page);
|
|
// exact=false to ignore the shortcut which is related to the OS
|
|
await expect(searchSection.getByRole("button", { name: "Search", exact: false })).toBeVisible();
|
|
await expect(searchSection).toMatchScreenshot("search-section.png");
|
|
});
|
|
|
|
test("should open the spotlight when the search button is clicked", async ({ page, app, user }) => {
|
|
const searchSection = getSearchSection(page);
|
|
await searchSection.getByRole("button", { name: "Search", exact: false }).click();
|
|
// The spotlight should be displayed
|
|
await expect(page.getByRole("dialog", { name: "Search Dialog" })).toBeVisible();
|
|
});
|
|
|
|
test("should open the room directory when the search button is clicked", async ({ page, app, user }) => {
|
|
const searchSection = getSearchSection(page);
|
|
await searchSection.getByRole("button", { name: "Explore rooms" }).click();
|
|
const dialog = page.getByRole("dialog", { name: "Search Dialog" });
|
|
// The room directory should be displayed
|
|
await expect(dialog).toBeVisible();
|
|
// The public room filter should be displayed
|
|
await expect(dialog.getByText("Public rooms")).toBeVisible();
|
|
});
|
|
});
|