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