优化
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import test from 'node:test'
|
||||
import ts from 'typescript'
|
||||
|
||||
const compiled = ts.transpileModule(readFileSync(new URL('./discardDocuments.ts', import.meta.url), 'utf8'), { compilerOptions: { module: ts.ModuleKind.ESNext, target: ts.ScriptTarget.ES2022 } }).outputText
|
||||
const { groupDiscardDocuments } = await import(`data:text/javascript;base64,${Buffer.from(compiled).toString('base64')}`)
|
||||
|
||||
const returned = (id, warehouse = 'WH', document = 'TT-BYWL-261019152551') => ({
|
||||
orderId: `return:${id}`, returnCartonId: id, sourceType: 'RETURN_CARTON', overseasWarehouseId: warehouse,
|
||||
inboundCode: document, inboundOrderNo: document, availablePackages: 5, cartonSelectionSupported: true,
|
||||
cartons: [{ cartonId: id, cartonMark: `BOX-${id}`, skus: [{ skuCode: 'A', availablePackages: 5 }] }], skus: [{ skuCode: 'A', availablePackages: 5 }],
|
||||
})
|
||||
|
||||
test('同单两箱合并成一个选项,可用量为两箱而非十件,保留原始提交身份', () => {
|
||||
const sources = [returned('1'), returned('2')]
|
||||
const result = groupDiscardDocuments(sources)
|
||||
assert.equal(result.length, 1)
|
||||
assert.equal(result[0].availablePackages, 2)
|
||||
assert.deepEqual(result[0].sources, sources)
|
||||
assert.equal(result[0].cartonSelectionSupported, true)
|
||||
})
|
||||
|
||||
test('不同单据或操作仓独立展示,混装SKU不重复计算物理箱', () => {
|
||||
assert.equal(groupDiscardDocuments([returned('1'), returned('2', 'OTHER'), returned('3', 'WH', 'TT-OTHER')]).length, 3)
|
||||
const source = { ...returned('1'), sourceType: 'INVENTORY', orderId: 'inventory:1', inventoryPositionId: '1', availablePackages: 10 }
|
||||
const second = { ...source, orderId: 'inventory:2', inventoryPositionId: '2', cartons: source.cartons }
|
||||
assert.equal(groupDiscardDocuments([source, second])[0].availablePackages, 1)
|
||||
})
|
||||
|
||||
test('缺少箱级记录时合并仓位可用箱数并保持全部废弃明细', () => {
|
||||
const first = { ...returned('1'), sourceType: 'INVENTORY', orderId: 'inventory:1', cartonSelectionSupported: false, availablePackages: 3 }
|
||||
const second = { ...first, orderId: 'inventory:2', availablePackages: 4 }
|
||||
const result = groupDiscardDocuments([first, second])[0]
|
||||
assert.equal(result.availablePackages, 7)
|
||||
assert.equal(result.cartonSelectionSupported, false)
|
||||
assert.equal(result.sources.length, 2)
|
||||
})
|
||||
Reference in New Issue
Block a user