Files
creator-hub/web/src/Layout.test.jsx
T

43 lines
1.2 KiB
React

import { afterEach, describe, expect, it } from "vitest";
import { cleanup, render, screen } from "@testing-library/react";
import { MemoryRouter, Route, Routes } from "react-router";
import { CreatorHubLayout } from "./Layout";
const originalMatchMedia = window.matchMedia;
afterEach(() => {
cleanup();
if (originalMatchMedia) {
Object.defineProperty(window, "matchMedia", {
configurable: true,
value: originalMatchMedia,
});
} else {
delete window.matchMedia;
}
});
describe("CreatorHubLayout", () => {
it("exposes one merged account-management menu item", () => {
Object.defineProperty(window, "matchMedia", {
configurable: true,
value: () => ({ matches: true }),
});
render(
<MemoryRouter initialEntries={["/accounts"]}>
<Routes>
<Route element={<CreatorHubLayout />}>
<Route path="*" element={<div>页面内容</div>} />
</Route>
</Routes>
</MemoryRouter>,
);
expect(
screen.getByRole("link", { name: "账号管理" }).getAttribute("href"),
).toBe("/accounts");
expect(screen.queryByRole("link", { name: "竞品账号" })).toBeNull();
expect(screen.queryByRole("link", { name: "账号策略" })).toBeNull();
});
});