Files
zkxw/web-admin/src/utils/production-task-set.test.ts
T
2026-09-01 11:32:49 +08:00

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