This commit is contained in:
2026-10-22 11:56:47 +08:00
parent 5d71af1ac9
commit de96e47d74
71 changed files with 1296 additions and 332 deletions
@@ -111,10 +111,10 @@ function nativeRunFixture() {
async confirmFleetLoading(_context, _module, _proof, token, measurements) {
events.push('loading'); assert.equal(token, 'PDA-IN-MEMORY'); assert.equal(measurements, result.loadingMeasurements)
if (!measurements) throw Error('Actual palletSpaces measurement is missing')
stage = 'AFTER_LOADING'; return '9007199254740995'
stage = 'DELIVERING'; return '9007199254740995'
},
async arrangeDispatchDelivery() { events.push('arrange'); return { data: { result: {} }, deliveries: [delivery], outbounds: [{ customerId: '100', outboundNo: 'OB-1' }] } },
async verifyDepartureReadiness() { events.push('ready'); return { data: { recordVersion: '9007199254740996' } } },
async readAutomaticDispatchDelivery() { events.push('arrange'); return { data: { result: {} }, deliveries: [delivery], outbounds: [{ customerId: '100', outboundNo: 'OB-1' }] } },
async verifyAutomaticDeparture() { events.push('ready'); return { data: { dispatchNo: 'DS-1', status: 'ACTIVE', stage: 'DELIVERING', recordVersion: '9007199254740996', counts: { shippedPackageCount: 4 } } } },
async saveReceiptAndComplete(current) { await current.request('PUT', DOCS, { expectedVersion: '0', idempotencyKey: 'ORIGINAL-POD' }); return { order: { status: 'DELIVERED' } } },
async finishFleetTrip(_context, _module, proof) { events.push('finish'); proof.closure = { status: 'VERIFIED' }; return proof.closure },
async inventorySnapshot() { return stock(picked) },
@@ -128,10 +128,10 @@ test('retained native execution preserves real ordering, token/measurement scope
const f = nativeRunFixture()
await runRetainedNativeDispatch(f.context, f.result, scope(), 'PDA-IN-MEMORY', f.deps)
assert.equal(f.result.finalStatus, 'PASSED')
assert.deepEqual(f.events.filter(value => value !== 'checkpoint'), ['prepare', 'pick', 'loading', 'arrange', 'ready', 'depart', 'depart', 'pod', 'finish'])
assert.deepEqual(f.events.filter(value => value !== 'checkpoint'), ['prepare', 'pick', 'loading', 'arrange', 'ready', 'pod', 'finish'])
assert.equal(f.result.inventory.conservation.totals.ledgerShipped, 4)
assert.deepEqual(f.result.inventory.ledgerAfter, f.result.inventory.ledgerAfterDepart)
assert.equal(f.result.departBody.recordVersion, '9007199254740996')
assert.equal(f.result.departure.recordVersion, '9007199254740996')
const originalDepartCount = f.calls.filter(row => row.method === 'POST').length
await runRetainedNativeDispatch(f.context, f.result, scope(), 'PDA-IN-MEMORY', f.deps)
assert.equal(f.calls.filter(row => row.method === 'POST').length, originalDepartCount)