Some checks failed
Co-authored-by: Sharang Parnerkar <parnerkarsharang@gmail.com> Reviewed-on: #16
53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
import { test, expect } from "@playwright/test";
|
|
|
|
test.describe("Sidebar navigation", () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto("/dashboard");
|
|
await page.waitForSelector(".sidebar", { timeout: 15_000 });
|
|
});
|
|
|
|
test("sidebar links route to correct pages", async ({ page }) => {
|
|
const navTests = [
|
|
{ label: "Providers", url: /\/providers/ },
|
|
{ label: "Developer", url: /\/developer\/agents/ },
|
|
{ label: "Organization", url: /\/organization\/pricing/ },
|
|
{ label: "Dashboard", url: /\/dashboard/ },
|
|
];
|
|
|
|
for (const { label, url } of navTests) {
|
|
await page.locator(".sidebar-link", { hasText: label }).click();
|
|
await expect(page).toHaveURL(url, { timeout: 10_000 });
|
|
}
|
|
});
|
|
|
|
test("browser back/forward navigation works", async ({ page }) => {
|
|
// Navigate to Providers
|
|
await page.locator(".sidebar-link", { hasText: "Providers" }).click();
|
|
await expect(page).toHaveURL(/\/providers/);
|
|
|
|
// Navigate to Developer
|
|
await page.locator(".sidebar-link", { hasText: "Developer" }).click();
|
|
await expect(page).toHaveURL(/\/developer/);
|
|
|
|
// Go back
|
|
await page.goBack();
|
|
await expect(page).toHaveURL(/\/providers/);
|
|
|
|
// Go forward
|
|
await page.goForward();
|
|
await expect(page).toHaveURL(/\/developer/);
|
|
});
|
|
|
|
test("logo link navigates to dashboard", async ({ page }) => {
|
|
// Navigate away first
|
|
await page.locator(".sidebar-link", { hasText: "Providers" }).click();
|
|
await expect(page).toHaveURL(/\/providers/);
|
|
|
|
// Click the logo/brand in sidebar header
|
|
const logo = page.locator(".sidebar-brand, .sidebar-logo, .sidebar a").first();
|
|
await logo.click();
|
|
|
|
await expect(page).toHaveURL(/\/dashboard/);
|
|
});
|
|
});
|