import { expect, test } from "@playwright/test";
test.describe("Authentication - Register", () => {
test("register page loads", async ({ page }) => {
await page.goto("/register");
await expect(page.locator("form")).toBeVisible();
});
test("shows validation errors for empty form", async ({ page }) => {
await page.goto("/register");
// HTML5 native validation prevents submit, so required inputs must exist
const requiredInputs = page.locator("input[required]");
await expect(requiredInputs.first()).toBeVisible();
expect(await requiredInputs.count()).toBeGreaterThan(0);
});
test("register with valid data", async ({ page }) => {
const ts = Date.now();
await page.goto("/register");
await page.fill('input[name="username"]', `e2euser${ts}`);
await page.fill('input[name="email"]', `e2e${ts}@test.com`);
await page.fill('input[name="password"]', `Test1234!`);
if (await page.locator('input[name="displayName"]').isVisible()) {
await page.fill('input[name="displayName"]', `E2E User ${ts}`);
}
await page.click('button[type="submit"]');
// Should redirect to dashboard or show success
await page.waitForURL(/\/(dashboard|explore|\/)/, { timeout: 10000 });
});
});