import { describe, expect, it } from 'vitest'; import type { RoleView } from '../src/api/auth'; import { resolveWorkbenchRoute } from '../src/store/modules/workbench-route'; const roles: RoleView[] = [ { code: 'SYSTEM_ADMIN', name: '系统管理员', workbenchRoute: '/governance/settings' }, { code: 'FINANCE_MANAGER', name: '财务管理人员', workbenchRoute: '/workbench/finance' }, ]; describe('active identity workbench route', () => { it('uses the route supplied for the active role', () => { expect(resolveWorkbenchRoute('SYSTEM_ADMIN', roles)).toBe('/governance/settings'); expect(resolveWorkbenchRoute('FINANCE_MANAGER', roles)).toBe('/workbench/finance'); }); it('falls back to the built-in role workbench when the server route is absent', () => { expect(resolveWorkbenchRoute('PROJECT_MANAGER', [])).toBe('/workbench/project'); expect(resolveWorkbenchRoute('ARCHIVE_MANAGER', [])).toBe('/workbench/archive'); }); it('keeps role selection for sessions without an active identity', () => { expect(resolveWorkbenchRoute(null, roles)).toBe('/role-select'); }); });