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: () =>
公开大屏页面
, })); vi.mock("./pages/AdminPage", () => ({ AdminPage: () =>
管理页面
})); vi.mock("./pages/DisplayPage", () => ({ DisplayPage: () =>
单项目公屏
})); vi.mock("./pages/HistoryPage", () => ({ HistoryPage: () =>
历史页面
})); vi.mock("./pages/LoginPage", () => ({ LoginPage: () =>
登录页面
})); vi.mock("./pages/StaffPage", () => ({ StaffPage: () =>
员工页面
})); vi.mock("./pages/VisitorPage", () => ({ VisitorPage: () =>
游客页面
})); vi.mock("./pages/VisitorLookupPage", () => ({ VisitorLookupPage: () =>
游客查询
})); vi.mock("./pages/VisitorPhonePage", () => ({ VisitorPhonePage: () =>
游客号码
})); 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(); expect(screen.getByText("公开大屏页面")).toBeVisible(); expect(authProvider).not.toHaveBeenCalled(); }); });