63 lines
1.5 KiB
TypeScript
63 lines
1.5 KiB
TypeScript
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']
|
|
)
|
|
})
|
|
})
|