71 lines
1.6 KiB
JavaScript
71 lines
1.6 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import { groupMenusByRegion, resolveRegionMeta } from './menu-regions.js'
|
|
|
|
assert.deepEqual(resolveRegionMeta('市场部'), {
|
|
key: 'market',
|
|
title: '市场部',
|
|
hint: '存储现场',
|
|
tone: 'market'
|
|
})
|
|
assert.deepEqual(resolveRegionMeta('OA工作流'), {
|
|
key: 'oa',
|
|
title: 'OA工作流',
|
|
hint: '审批协同',
|
|
tone: 'oa'
|
|
})
|
|
assert.equal(resolveRegionMeta('').key, 'other')
|
|
assert.equal(resolveRegionMeta(null).tone, 'other')
|
|
|
|
const menus = [
|
|
{
|
|
id: '1',
|
|
title: '发起审批',
|
|
groupTitle: 'OA工作流',
|
|
path: '/pages/oa/start/index'
|
|
},
|
|
{
|
|
id: '2',
|
|
title: '预签约订单(专员)',
|
|
groupTitle: '市场部',
|
|
path: '/pages/market/webview/index?entry=specialist-presign'
|
|
},
|
|
{
|
|
id: '3',
|
|
title: '待办中心',
|
|
groupTitle: 'OA工作流',
|
|
path: '/pages/oa/pending/index'
|
|
},
|
|
{
|
|
id: '4',
|
|
title: '协议单(经理)',
|
|
groupTitle: '市场部',
|
|
path: '/pages/market/webview/index?entry=manager-protocol'
|
|
},
|
|
{
|
|
id: '5',
|
|
title: '孤立入口',
|
|
path: '/pages/demo/index'
|
|
}
|
|
]
|
|
|
|
const regions = groupMenusByRegion(menus)
|
|
assert.equal(regions.length, 3)
|
|
assert.deepEqual(
|
|
regions.map((r) => r.title),
|
|
['市场部', 'OA工作流', '其他']
|
|
)
|
|
assert.deepEqual(
|
|
regions[0].menus.map((m) => m.id),
|
|
['2', '4']
|
|
)
|
|
assert.deepEqual(
|
|
regions[1].menus.map((m) => m.id),
|
|
['1', '3']
|
|
)
|
|
assert.equal(regions[0].tone, 'market')
|
|
assert.equal(regions[1].tone, 'oa')
|
|
assert.equal(regions[2].tone, 'other')
|
|
assert.deepEqual(groupMenusByRegion([]), [])
|
|
|
|
console.log('menu-regions.test.js ok')
|