import assert from 'node:assert/strict'; import test from 'node:test'; import type { RoleItem } from './members'; import { mergePresetRolePermissions } from './role-permission-migration'; test('mergePresetRolePermissions adds new preset permissions to existing product manager role', () => { const roles: RoleItem[] = [ { id: 'role-pm', name: '产品经理', createdAt: '2024-01-01', permissions: ['product:view'], }, ]; const result = mergePresetRolePermissions(roles); assert.equal(result.changed, true); assert.ok(result.roles[0].permissions.includes('product:view')); assert.ok(result.roles[0].permissions.includes('xiaobao.warning:view')); assert.ok(result.roles[0].permissions.includes('xiaobao.warning:manage')); }); test('mergePresetRolePermissions keeps custom role permissions unchanged', () => { const roles: RoleItem[] = [ { id: 'role-custom', name: '自定义角色', createdAt: '2024-01-01', permissions: ['version:view'], }, ]; const result = mergePresetRolePermissions(roles); assert.equal(result.changed, false); assert.deepEqual(result.roles[0].permissions, ['version:view']); });