Files
XQKqueue/web/src/App.test.tsx
brother7 d782227a23 开放多项目大屏免登录访问
需求描述:/admin/display 需要无需管理员登录即可直接查看多项目公开运行状态。

实现思路:新增公开字段白名单接口与独立大屏页面,移除该路由的管理员会话依赖,同时保留 /api/admin/overview 的鉴权并补充隐私、路由和页面回归测试。

验证:Go 全量测试通过;前端 18 个测试文件共 59 项通过,TypeScript 检查通过。
2026-07-31 16:36:03 +08:00

41 lines
1.6 KiB
TypeScript

import { render, screen } from "@testing-library/react";
import { afterEach, describe, expect, it, vi } from "vitest";
const { authProvider } = vi.hoisted(() => ({
authProvider: vi.fn(({ children }: { children: React.ReactNode }) => <>{children}</>),
}));
vi.mock("./auth/AuthContext", () => ({
AuthProvider: authProvider,
useAuth: () => ({ user: null, loading: false }),
}));
vi.mock("./pages/PublicDisplayCenterPage", () => ({
PublicDisplayCenterPage: () => <div></div>,
}));
vi.mock("./pages/AdminPage", () => ({ AdminPage: () => <div></div> }));
vi.mock("./pages/DisplayPage", () => ({ DisplayPage: () => <div></div> }));
vi.mock("./pages/HistoryPage", () => ({ HistoryPage: () => <div></div> }));
vi.mock("./pages/LoginPage", () => ({ LoginPage: () => <div></div> }));
vi.mock("./pages/StaffPage", () => ({ StaffPage: () => <div></div> }));
vi.mock("./pages/VisitorPage", () => ({ VisitorPage: () => <div></div> }));
vi.mock("./pages/VisitorLookupPage", () => ({ VisitorLookupPage: () => <div></div> }));
vi.mock("./pages/VisitorPhonePage", () => ({ VisitorPhonePage: () => <div></div> }));
import { App } from "./App";
afterEach(() => {
window.history.pushState({}, "", "/");
vi.clearAllMocks();
});
describe("App routes", () => {
it("opens /admin/display without mounting administrator authentication", () => {
window.history.pushState({}, "", "/admin/display");
render(<App />);
expect(screen.getByText("公开大屏页面")).toBeVisible();
expect(authProvider).not.toHaveBeenCalled();
});
});