38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
// SPDX-FileCopyrightText: 2026 Milovann Yanatchkov
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import { test, expect } from "@playwright/test";
|
|
|
|
async function switchMode(page: import("@playwright/test").Page, label: RegExp) {
|
|
await page.getByRole("button", { name: /Sketch|Explore|Learn|Build/ }).click();
|
|
await page.getByRole("menuitemradio", { name: label }).click();
|
|
}
|
|
|
|
test("boots in sketch with the shell visible", async ({ page }) => {
|
|
await page.goto("/");
|
|
await expect(page.locator(".brand")).toHaveText("Studio");
|
|
await expect(page.locator(".breadcrumb")).toBeVisible();
|
|
await expect(page.locator(".layout-tabs")).toBeVisible();
|
|
await expect(page.locator(".bimr-content")).toBeVisible();
|
|
});
|
|
|
|
test("switches to explore", async ({ page }) => {
|
|
await page.goto("/");
|
|
await switchMode(page, /Explore/);
|
|
await expect(page.locator(".explore")).toBeVisible();
|
|
});
|
|
|
|
test("switches to learn and shows lessons", async ({ page }) => {
|
|
await page.goto("/");
|
|
await switchMode(page, /Learn/);
|
|
await expect(page.locator(".learn")).toBeVisible();
|
|
await expect(page.locator(".learn-lesson").first()).toBeVisible();
|
|
await expect(page.locator(".learn-title")).toBeVisible();
|
|
});
|
|
|
|
test("opens the file tree popover", async ({ page }) => {
|
|
await page.goto("/");
|
|
await page.getByRole("button", { name: "Workspace files" }).click();
|
|
await expect(page.locator(".file-pop")).toBeVisible();
|
|
await expect(page.locator(".file-item").first()).toBeVisible();
|
|
});
|