Files
NianAIGC/tests/auth-login-panel.test.ts
2026-07-06 15:54:27 +08:00

27 lines
1.2 KiB
TypeScript

import { readFile } from "node:fs/promises";
import { join } from "node:path";
import { describe, expect, it } from "vitest";
describe("AuthLoginPanel", () => {
it("does not render captcha controls", async () => {
const source = await readFile(join(process.cwd(), "components", "auth-login-panel.tsx"), "utf8");
expect(source).not.toContain("auth-captcha-row");
expect(source).not.toContain("auth-captcha-button");
expect(source).not.toContain("/api/auth/captcha");
expect(source).not.toContain("randomStr");
});
it("supports switching between normal and admin login pages", async () => {
const panelSource = await readFile(join(process.cwd(), "components", "auth-login-panel.tsx"), "utf8");
const loginPageSource = await readFile(join(process.cwd(), "app", "auth", "login", "page.tsx"), "utf8");
const adminPageSource = await readFile(join(process.cwd(), "app", "auth", "admin-login", "page.tsx"), "utf8").catch(() => "");
expect(panelSource).toContain("authMode");
expect(panelSource).toContain("alternateHref");
expect(loginPageSource).toContain("/auth/admin-login");
expect(adminPageSource).toContain('authMode="admin"');
expect(adminPageSource).toContain("/auth/login");
});
});