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