69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
import { describe, it } from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
import {
|
|
mapWorkOrderTasksToSetItems,
|
|
revertTaskNamePlaceholders,
|
|
resolveWorkOrderLabStorageCode,
|
|
LAB_STORAGE_CODE_PLACEHOLDER
|
|
} from './production-task-set'
|
|
|
|
describe('mapWorkOrderTasksToSetItems', () => {
|
|
it('skips empty names and keeps route/description/remark', () => {
|
|
const { items, skippedEmptyNameCount } = mapWorkOrderTasksToSetItems([
|
|
{ taskName: '分离', routeId: 'r1', routeName: '路线A', description: 'd', remark: 'm' },
|
|
{ taskName: ' ', routeId: 'r2' },
|
|
{ taskName: '培养' }
|
|
])
|
|
assert.equal(skippedEmptyNameCount, 1)
|
|
assert.deepEqual(items, [
|
|
{
|
|
taskName: '分离',
|
|
routeId: 'r1',
|
|
routeName: '路线A',
|
|
description: 'd',
|
|
remark: 'm'
|
|
},
|
|
{
|
|
taskName: '培养',
|
|
routeId: '',
|
|
routeName: '',
|
|
description: '',
|
|
remark: ''
|
|
}
|
|
])
|
|
})
|
|
})
|
|
|
|
describe('revertTaskNamePlaceholders', () => {
|
|
it('replaces lab storage code with placeholder', () => {
|
|
assert.equal(
|
|
revertTaskNamePlaceholders('LS001样本处理', 'LS001'),
|
|
`${LAB_STORAGE_CODE_PLACEHOLDER}样本处理`
|
|
)
|
|
})
|
|
|
|
it('keeps name when code empty', () => {
|
|
assert.equal(revertTaskNamePlaceholders('LS001样本处理', ''), 'LS001样本处理')
|
|
})
|
|
})
|
|
|
|
describe('mapWorkOrderTasksToSetItems with labStorageCode', () => {
|
|
it('reverts names when mapping', () => {
|
|
const { items } = mapWorkOrderTasksToSetItems(
|
|
[{ taskName: 'LS001分离', routeId: 'r1', routeName: 'A' }],
|
|
{ labStorageCode: 'LS001' }
|
|
)
|
|
assert.equal(items[0].taskName, `${LAB_STORAGE_CODE_PLACEHOLDER}分离`)
|
|
})
|
|
})
|
|
|
|
describe('resolveWorkOrderLabStorageCode', () => {
|
|
it('prefers row field then reception', () => {
|
|
assert.equal(resolveWorkOrderLabStorageCode({ labStorageCode: 'A' }), 'A')
|
|
assert.equal(
|
|
resolveWorkOrderLabStorageCode({ reception: { labStorageCode: 'B' } }),
|
|
'B'
|
|
)
|
|
})
|
|
})
|