import { expect, test } from "@playwright/test"; test("未登录访问 /zh-CN/dashboard 跳转登录并带 next", async ({ page }) => { await page.goto("/zh-CN/dashboard"); await expect(page).toHaveURL(/\/zh-CN\/auth\/login\?next=/); await expect(page.getByRole("heading", { name: "登录" })).toBeVisible(); }); test("未登录访问 /en/library 跳转英文登录页", async ({ page }) => { await page.goto("/en/library"); await expect(page).toHaveURL(/\/en\/auth\/login\?next=/); }); test("登录页渲染用户名/密码表单", async ({ page }) => { await page.goto("/zh-CN/auth/login"); await expect(page.getByLabel("用户名")).toBeVisible(); await expect(page.getByLabel("密码")).toBeVisible(); await expect(page.getByRole("button", { name: "登录" })).toBeVisible(); }); test("注册页可达", async ({ page }) => { const res = await page.goto("/zh-CN/auth/register"); expect(res?.status()).toBe(200); await expect(page.getByLabel("邮箱")).toBeVisible(); });