This commit is contained in:
2026-10-09 17:28:03 +08:00
parent 2d68431199
commit b014624fa3
3 changed files with 53 additions and 5 deletions
+2 -2
View File
@@ -66,7 +66,7 @@ test('outbound partial pick submits the selected carton and distinguishes shared
assert.deepEqual(outboundPickPayload({ outboundPalletItemId: '13' }, { inventoryPositionId: '23' }, 2).cartonMarks, [])
const page = await read('../src/pages/outbound/outbound.vue')
assert.match(page, /listOutboundTasks\('PENDING'\)/)
assert.match(page, /:key="item.outboundPalletItemId"/)
assert.match(page, /:key="item.displayKey \|\| item.outboundPalletItemId"/)
assert.match(page, /outboundPickPayload\(this.selectedItem, this.selectedPosition, this.packages, this.selectedScanCode\)/)
assert.match(page, /pickOutboundTask\(this.current.taskNo, \{ \.\.\.payload, idempotencyKey: key.value \}\)/)
assert.match(page, /pickOutboundPallet\(this.current.taskNo, code, \{ idempotencyKey: key.value \}\)/)
@@ -78,7 +78,7 @@ test('return outbound preserves its task type and only permits pallet scans for
assert.equal(task.outboundType, 'RETURN_OUTBOUND')
const page = await read('../src/pages/outbound/outbound.vue')
assert.match(page, /this\.current\?\.outboundType === 'RETURN_OUTBOUND' && item\.palletNo/)
assert.match(page, /整托出库请扫描托盘码/)
assert.match(page, /整托出库请扫描托盘号/)
const item = { outboundPalletItemId: '12', skuCode: 'SKU-A' }
const position = { inventoryPositionId: '', cartonMark: 'RC-1' }
assert.deepEqual(outboundPickPayload(item, position, 1, 'SKU-A'), {
+26
View File
@@ -18,6 +18,32 @@ function page(overrides = {}) {
return { vm, calls }
}
test('return pallet rows sum carton counts without changing raw pick lines', () => {
const { vm } = page()
const cartons = Array.from({ length: 5 }, (_, index) => ({ outboundPalletItemId: index + 1, palletNo: 'PALLET', plannedPackages: 1, pickedPackages: index < 3 ? 1 : 0, positions: [] }))
const loose = { outboundPalletItemId: 6, palletNo: '', plannedPackages: 2, pickedPackages: 0, positions: [] }
vm.current = { outboundType: 'RETURN_OUTBOUND', items: [...cartons, loose, { outboundPalletItemId: 7, palletNo: 'OTHER', plannedPackages: 2, pickedPackages: 1, positions: [] }] }
const before = JSON.stringify(vm.current.items)
assert.equal(vm.displayItems.length, 3)
assert.equal(vm.displayItems[0].plannedPackages, 5)
assert.equal(vm.displayItems[0].pickedPackages, 3)
assert.equal(vm.displayItems[1], loose)
assert.equal(vm.displayItems[2].palletNo, 'OTHER')
assert.equal(JSON.stringify(vm.current.items), before)
assert.match(vm.scanLabel, /扫描托盘号/)
assert.match(vm.scanPlaceholder, /扫描托盘号/)
cartons.forEach(item => { item.pickedPackages = 1 })
assert.equal(vm.displayItems[0].pickedPackages, 5)
})
test('other outbound types preserve individual selectable lines', () => {
const { vm } = page()
const items = [{ palletNo: 'PALLET', plannedPackages: 1, pickedPackages: 0, positions: [] }, { palletNo: 'PALLET', plannedPackages: 2, pickedPackages: 0, positions: [] }]
vm.current = { outboundType: 'NORMAL', items }
assert.equal(vm.displayItems, items)
assert.equal(vm.hasReturnPallet, false)
})
test('completed and cancelled tasks cannot submit pallet picking or task completion', async () => {
for (const status of ['COMPLETED', 'CANCELLED']) {
const { vm, calls } = page()