fix: align HTTP acceptance fixtures and pallet permissions

This commit is contained in:
2026-09-14 12:40:40 +08:00
parent e55ab73e61
commit a2ea0ba9e6
15 changed files with 205 additions and 50 deletions
@@ -5,7 +5,26 @@ import test from 'node:test'
import { fileURLToPath } from 'node:url'
import { normalizeModuleOrder } from '../admin-test-env-acceptance.mjs'
import { run } from './phase4-overseas-pda-operations.mjs'
import { run, remainingRelabelItem, selectPhysicalRelabelSources } from './phase4-overseas-pda-operations.mjs'
test('relabel uses three physical cartons across current inbounds, never UNBOUND or duplicate positions', () => {
const a = { inventoryBalanceId: 'A', inboundOrderId: '1', positions: [
{ positionId: '10', palletNo: 'REAL-A', availablePackages: 2 },
{ positionId: '11', palletNo: 'UNBOUND', availablePackages: 1 }] }
const b = { inventoryBalanceId: 'B', inboundOrderId: '2', positions: [
{ positionId: '20', palletNo: 'REAL-B', availablePackages: 1 }] }
const selected = selectPhysicalRelabelSources([b, a, a], 'A')
assert.deepEqual(selected.map(line => line.position.palletNo), ['REAL-A', 'REAL-A', 'REAL-B'])
assert.equal(selectPhysicalRelabelSources([a, a], 'A').length, 2)
})
test('exception uses the untouched third carton, independent of response ordering', () => {
const third = { itemId: '3', expectedPackages: 1 }
const detail = { items: [third, { itemId: '2' }, { itemId: '1' }] }
assert.equal(remainingRelabelItem(detail, [1, '2']), third)
assert.equal(remainingRelabelItem(detail, ['1', '2', '3']), null)
assert.equal(remainingRelabelItem(null, []), null)
})
const here = path.dirname(fileURLToPath(import.meta.url))
const source = fs.readFileSync(path.join(here, 'phase4-overseas-pda-operations.mjs'), 'utf8')