bimr-studio/tests/smoke.spec.ts
2026-09-21 15:33:30 +02:00

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();
});