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(); }); });