Files
zkxw/mobile-h5/utils/menu-regions.test.js
T
2026-10-13 15:18:01 +08:00

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')