From 4980ebcd3022293d5f5fb525f0c4f0e2828c20ba Mon Sep 17 00:00:00 2001 From: selfrelease Date: Sun, 19 Jul 2026 21:35:32 +0800 Subject: [PATCH] feat(frontend): prefill demo credentials on login page + E2E test passed --- frontend/e2e/login-prefill.spec.ts | 24 ++++++++++++++++++++++++ frontend/src/app/login/page.tsx | 11 +++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 frontend/e2e/login-prefill.spec.ts diff --git a/frontend/e2e/login-prefill.spec.ts b/frontend/e2e/login-prefill.spec.ts new file mode 100644 index 0000000..7492f02 --- /dev/null +++ b/frontend/e2e/login-prefill.spec.ts @@ -0,0 +1,24 @@ +/** 登录页预填测试账号验证。 */ + +import { test, expect, type Page } from "@playwright/test"; + +test.use({ viewport: { width: 1280, height: 720 } }); + +test("登录页预填演示账号并登录成功", async ({ page }: { page: Page }) => { + await page.goto("/login"); + await page.waitForLoadState("networkidle"); + + // 验证邮箱和密码已预填 + await expect(page.locator('input[id="email"]')).toHaveValue("gp@demo.com"); + await expect(page.locator('input[id="password"]')).toHaveValue("demo123456"); + + // 验证演示账号提示存在 + await expect(page.getByText("演示账号")).toBeVisible(); + + // 点击登录 + await page.click('button[type="submit"]'); + await expect(page).toHaveURL(/\/dashboard|\/today/); + + // 验证已登录(侧边栏出现) + await expect(page.locator("aside")).toBeVisible(); +}); diff --git a/frontend/src/app/login/page.tsx b/frontend/src/app/login/page.tsx index b56544f..3df59fc 100644 --- a/frontend/src/app/login/page.tsx +++ b/frontend/src/app/login/page.tsx @@ -11,8 +11,8 @@ import { useAuth } from "@/lib/auth-context"; export default function LoginPage() { const router = useRouter(); const { login } = useAuth(); - const [email, setEmail] = useState(""); - const [password, setPassword] = useState(""); + const [email, setEmail] = useState("gp@demo.com"); + const [password, setPassword] = useState("demo123456"); const [error, setError] = useState(""); const [isLoading, setIsLoading] = useState(false); @@ -102,6 +102,13 @@ export default function LoginPage() { {isLoading ? "登录中..." : "登录"} + + {/* 演示账号提示 */} +
+

演示账号

+

邮箱:gp@demo.com

+

密码:demo123456

+
);