gongxiangp2/components/department-dashboard/workspace-navigation.test.ts

44 lines
2.1 KiB
TypeScript

import {
getFrameworkWorkspaceParams,
getWorkspaceItem,
WORKSPACE_SECTIONS,
WORKSPACE_REDIRECTS,
} from './workspace-navigation'
describe('workspace navigation', () => {
it('合并重复导航入口,并为未接入项生成独立框架页', () => {
const items = WORKSPACE_SECTIONS.flatMap((section) => section.items)
const hrefs = items.map((item) => item.href)
expect(items).toHaveLength(14)
expect(new Set(hrefs).size).toBe(14)
expect(getFrameworkWorkspaceParams()).toHaveLength(7)
expect(getWorkspaceItem('business', 'brand-building')).toBeNull()
expect(WORKSPACE_SECTIONS.find((section) => section.key === 'business')?.items).toEqual([
expect.objectContaining({ key: 'performance-conversion', title: '业绩转化' }),
])
expect(getWorkspaceItem('dashboard', 'core-metrics')?.item.title).toBe('核心指标')
expect(getWorkspaceItem('assets', 'material-library')?.item.status).toBe('connected')
expect(getWorkspaceItem('assets', 'automation-workflows')?.item.status).toBe('connected')
expect(getWorkspaceItem('assets', 'value-metrics')?.item).toMatchObject({
status: 'connected',
productName: '素材资产库复用率',
})
expect(getWorkspaceItem('governance', 'permissions')?.item).toMatchObject({
title: '权限管理',
href: '/workspaces/governance/permissions',
status: 'connected',
})
expect(getWorkspaceItem('organization', 'organization-structure')?.item).toMatchObject({
href: '/workspaces/organization/organization-structure',
status: 'connected',
productName: '公司与品牌中心组织架构',
})
expect(getWorkspaceItem('governance', 'data-definitions')).toBeNull()
expect(getWorkspaceItem('organization', 'team-functions')?.item.status).toBe('connected')
expect(getWorkspaceItem('governance', 'user-permissions')).toBeNull()
expect(WORKSPACE_REDIRECTS['governance/user-permissions']).toBe('/workspaces/governance/permissions?view=people')
expect(WORKSPACE_REDIRECTS['governance/data-definitions']).toBe('/workspaces/organization/organization-structure?scope=company')
})
})