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( }> 页面内容} /> , ); expect( screen.getByRole("link", { name: "账号管理" }).getAttribute("href"), ).toBe("/accounts"); expect(screen.queryByRole("link", { name: "竞品账号" })).toBeNull(); expect(screen.queryByRole("link", { name: "账号策略" })).toBeNull(); }); });