From 3d2a2845b9a2fc6ffa261e8cbaf9ba41ba3053ad Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Thu, 27 Aug 2026 15:03:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E7=99=BB=E5=BD=95=E9=A1=B5):=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E7=99=BB=E5=BD=95=E9=A1=B5=E7=A1=AC=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E7=9A=84=E9=BB=98=E8=AE=A4=E8=B4=A6=E5=8F=B7=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增单元测试用例验证该改动,确保不会预填硬编码的默认凭据,同时保留记住账号的恢复逻辑 --- WonderQ-Admin-UI-Vue/src/pages/LoginPage.test.ts | 15 +++++++++++++++ WonderQ-Admin-UI-Vue/src/pages/LoginPage.vue | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 WonderQ-Admin-UI-Vue/src/pages/LoginPage.test.ts diff --git a/WonderQ-Admin-UI-Vue/src/pages/LoginPage.test.ts b/WonderQ-Admin-UI-Vue/src/pages/LoginPage.test.ts new file mode 100644 index 0000000..c0abb41 --- /dev/null +++ b/WonderQ-Admin-UI-Vue/src/pages/LoginPage.test.ts @@ -0,0 +1,15 @@ +import { readFileSync } from "node:fs"; +import { describe, expect, it } from "vitest"; + +const source = readFileSync(new URL("./LoginPage.vue", import.meta.url), "utf8"); + +describe("登录页凭据初始化", () => { + it("不预填账号和密码,但保留记住密码的账号恢复逻辑", () => { + expect(source).toContain("email: rememberedEmail, password: \"\""); + expect(source).toContain("rememberMe: Boolean(rememberedEmail)"); + expect(source).toContain("window.localStorage.setItem(rememberedEmailKey, form.email.trim())"); + expect(source).toContain("window.localStorage.removeItem(rememberedEmailKey)"); + expect(source).not.toContain("admin@example.com"); + expect(source).not.toContain("ChangeMe123!"); + }); +}); diff --git a/WonderQ-Admin-UI-Vue/src/pages/LoginPage.vue b/WonderQ-Admin-UI-Vue/src/pages/LoginPage.vue index fe465d1..4002b93 100644 --- a/WonderQ-Admin-UI-Vue/src/pages/LoginPage.vue +++ b/WonderQ-Admin-UI-Vue/src/pages/LoginPage.vue @@ -10,7 +10,7 @@ const router = useRouter(); const route = useRoute(); const rememberedEmailKey = "wonderq-admin-remembered-email"; const rememberedEmail = typeof window === "undefined" ? "" : window.localStorage.getItem(rememberedEmailKey) ?? ""; -const form = reactive({ email: rememberedEmail || "admin@example.com", password: "ChangeMe123!", captchaId: "", captchaCode: "", rememberMe: Boolean(rememberedEmail) }); +const form = reactive({ email: rememberedEmail, password: "", captchaId: "", captchaCode: "", rememberMe: Boolean(rememberedEmail) }); const error = ref(""); const captchaImage = ref(""); const captchaLoading = ref(false);