- 补实现 ProtectedRoute 空壳组件(预留接口,不启用认证逻辑) - 修复页面组件内联 style 为 CSS 类,符合样式规范 - 补充 Sidebar 菜单项激活状态测试、404 按钮可点击测试 - 回写 admin-layout spec Header 页面标题 fallback 行为 - 同步 delta specs 至主规范(admin-layout、frontend-routing、app-constants) - 归档 refactor-frontend-layout change
33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { screen } from "@testing-library/react";
|
|
import { describe, expect, test } from "bun:test";
|
|
import { createElement } from "react";
|
|
|
|
import { Sidebar } from "../../../../src/web/components/Sidebar";
|
|
import { renderWithProviders } from "../../test-utils";
|
|
|
|
describe("Sidebar", () => {
|
|
test("渲染菜单项", () => {
|
|
renderWithProviders(createElement(Sidebar, { collapsed: false }));
|
|
|
|
expect(screen.getByText("仪表盘")).not.toBeNull();
|
|
expect(screen.getByText("用户管理")).not.toBeNull();
|
|
expect(screen.getByText("系统设置")).not.toBeNull();
|
|
});
|
|
|
|
test("折叠状态下仍渲染菜单项", () => {
|
|
renderWithProviders(createElement(Sidebar, { collapsed: true }));
|
|
|
|
expect(screen.getByText("仪表盘")).not.toBeNull();
|
|
expect(screen.getByText("用户管理")).not.toBeNull();
|
|
expect(screen.getByText("系统设置")).not.toBeNull();
|
|
});
|
|
|
|
test("高亮当前路由对应的菜单项", () => {
|
|
renderWithProviders(createElement(Sidebar, { collapsed: false }), { initialRoute: "/users" });
|
|
|
|
const activeItem = document.querySelector(".t-is-active");
|
|
expect(activeItem).not.toBeNull();
|
|
expect(activeItem?.textContent).toContain("用户管理");
|
|
});
|
|
});
|