import { describe, it } from 'node:test' import assert from 'node:assert/strict' import { extractPersonIds, formatPersonDisplay, isPersonValueItem, normalizePersonModelValue } from './oa-person-value' describe('oa-person-value', () => { it('isPersonValueItem', () => { assert.equal(isPersonValueItem({ id: 'u1', name: '张三' }), true) assert.equal(isPersonValueItem({ id: '', name: 'x' }), false) assert.equal(isPersonValueItem(null), false) }) it('normalize single', () => { assert.deepEqual(normalizePersonModelValue({ id: 'u1', name: '张三' }, false), { id: 'u1', name: '张三' }) assert.equal(normalizePersonModelValue(null, false), null) }) it('normalize multiple', () => { assert.deepEqual( normalizePersonModelValue( [ { id: 'u1', name: '张三' }, { id: 'u2', name: '李四' } ], true ), [ { id: 'u1', name: '张三' }, { id: 'u2', name: '李四' } ] ) assert.deepEqual(normalizePersonModelValue(null, true), []) }) it('format and extract ids', () => { assert.equal( formatPersonDisplay([ { id: 'u1', name: '张三' }, { id: 'u2', name: '李四' } ]), '张三、李四' ) assert.deepEqual( extractPersonIds({ id: 'u1', name: '张三' }), ['u1'] ) assert.deepEqual( extractPersonIds([ { id: 'u1', name: '张三' }, { id: 'u2', name: '李四' } ]), ['u1', 'u2'] ) }) })