43 lines
1.2 KiB
React
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();
|
|
});
|
|
});
|