Files
lingxi/apps/web/src/navigation/breadcrumbs.spec.ts
T
Stev_Wang f849e443d7 refactor(web): 侧栏「用户与组织」更名为「用户管理」
背景:
- 管理中心侧栏菜单名为「用户与组织」,与「角色管理」「部门管理」的命名方式不一致;
- 页面标题、面包屑仍沿用旧名,三处展示不统一;
- A1 文档与代码注释中该功能域本来即称「用户管理」。

改动:
- nav-config:菜单 label 改为「用户管理」,description 改为「成员账号、部门归属与登录状态」;
- breadcrumbs:用户新建 / 详情子路由的面包屑 2 处同步;
- UsersPage:页面 h1 同步;
- nav-config.spec / breadcrumbs.spec / e2e a1-identity 的标签与 heading 断言同步;
- 11-前端路由与目录规范、AppLayout 注释同步;PRD P-01 功能名保持「用户与组织管理」不变。

影响面:
- 仅前端文案与对应断言;路由、权限点、接口、数据均不变。

回滚方式:
- 回滚本提交即恢复原「用户与组织」文案与断言。

验证证据:
- pnpm format:check / lint / typecheck 通过;
- pnpm test:web 120/120 通过;
- Chrome 1440×900 实机:侧栏、面包屑、页面标题均显示「用户管理」。
2026-11-03 15:54:13 +08:00

41 lines
1.3 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { getRoleSectionTrail, getUserSectionTrail } from './breadcrumbs';
describe('面包屑子路由补全', () => {
it('角色新建页:工作台 / 管理中心 / 角色管理 / 新建角色', () => {
const trail = getRoleSectionTrail('/system/roles/new');
expect(trail?.map((entry) => entry.label)).toEqual([
'工作台',
'管理中心',
'角色管理',
'新建角色',
]);
expect(trail?.[2]?.path).toBe('/system/roles');
});
it('角色编辑器:末级为角色编辑', () => {
const trail = getRoleSectionTrail('/system/roles/01HZZZZZZZZZZZZZZZZZZZZZZZ');
expect(trail?.map((entry) => entry.label)).toEqual([
'工作台',
'管理中心',
'角色管理',
'角色编辑',
]);
});
it('角色列表页由导航配置派生,不走子路由补全', () => {
expect(getRoleSectionTrail('/system/roles')).toBeNull();
});
it('用户子路由补全不受影响', () => {
expect(getUserSectionTrail('/system/users/new')?.map((entry) => entry.label)).toEqual([
'工作台',
'管理中心',
'用户管理',
'新建用户',
]);
expect(getUserSectionTrail('/system/users/01HZZZZZZZZZZZZZZZZZZZZZZZ')).not.toBeNull();
});
});