SEC-cyBERT/labelapp/tests/01-auth.spec.ts
2026-03-29 00:32:24 -04:00

55 lines
1.8 KiB
TypeScript

import { test, expect } from "@playwright/test";
test.describe("Authentication", () => {
test("login page loads", async ({ page }) => {
await page.goto("/");
await expect(page.getByText("SEC cyBERT")).toBeVisible();
await expect(page.getByPlaceholder("Enter password")).toBeVisible();
});
test("rejects wrong password", async ({ page }) => {
await page.goto("/");
await page.selectOption("#annotator", "joey");
await page.getByPlaceholder("Enter password").fill("wrongpassword");
await page.getByRole("button", { name: "Sign In" }).click();
await expect(page.getByText("Invalid credentials")).toBeVisible();
});
test("logs in with correct password and redirects to dashboard", async ({
page,
}) => {
await page.goto("/");
await page.selectOption("#annotator", "joey");
await page.getByPlaceholder("Enter password").fill("SEC-cyBERT");
await page.getByRole("button", { name: "Sign In" }).click();
await page.waitForURL("/dashboard");
await expect(page.getByText("Welcome, Joey")).toBeVisible();
});
test("redirects unauthenticated users from dashboard to login", async ({
page,
}) => {
await page.goto("/dashboard");
await page.waitForURL("/");
await expect(page.getByText("SEC cyBERT")).toBeVisible();
});
test("logout clears session", async ({ page }) => {
await page.goto("/");
await page.selectOption("#annotator", "joey");
await page.getByPlaceholder("Enter password").fill("SEC-cyBERT");
await page.getByRole("button", { name: "Sign In" }).click();
await page.waitForURL("/dashboard");
await page.getByRole("button", { name: "Logout" }).click();
await page.waitForURL("/");
await page.goto("/dashboard");
await page.waitForURL("/");
});
});