hyapp-admin-platform/src/App.test.jsx
2026-05-02 13:02:57 +08:00

46 lines
1.3 KiB
JavaScript

import { render, screen } from "@testing-library/react";
import { afterEach, beforeEach, expect, test, vi } from "vitest";
import { MemoryRouter } from "react-router-dom";
import App from "@/app/App.jsx";
import { AppProviders } from "@/app/providers.jsx";
import { adminRoutes } from "@/app/router/routeConfig";
beforeEach(() => {
window.localStorage.clear();
vi.stubGlobal(
"fetch",
vi.fn(async () => new Response(JSON.stringify({ code: 401, message: "unauthorized" }), { status: 401 }))
);
});
afterEach(() => {
vi.unstubAllGlobals();
});
test("renders login route", async () => {
renderWithRoute("/login");
expect(await screen.findByText("HYApp 管理平台")).toBeInTheDocument();
});
test("redirects protected route to login when unauthenticated", async () => {
renderWithRoute("/system/users");
expect(await screen.findByText("HYApp 管理平台")).toBeInTheDocument();
});
test("admin routes declare menu code and permission", () => {
expect(adminRoutes.length).toBeGreaterThan(0);
expect(adminRoutes.every((route) => route.menuCode && route.permission)).toBe(true);
});
function renderWithRoute(route) {
return render(
<AppProviders>
<MemoryRouter initialEntries={[route]}>
<App />
</MemoryRouter>
</AppProviders>
);
}