27 lines
1.2 KiB
TypeScript
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");
|
|
});
|
|
});
|