test(firstleg): decouple PDA completion from truck

This commit is contained in:
2026-09-01 16:33:57 +08:00
parent eb385fe906
commit 9098d8dfdf
4 changed files with 67 additions and 3 deletions
@@ -140,6 +140,22 @@ test('late container gate mode proves the final gate without requiring evidence
assert.match(value, /nextStage === 'CABINET_EVIDENCE' && nextCode === 'A0409'/)
assert.match(value, /!nextMessage\.includes\('集装箱号'\)/)
assert.match(value, /context\.createdResources\.phase3LateContainerGate/)
assert.match(value, /独立柜未创建拖车单也不阻塞 PDA 装柜完成命令/)
})
test('PDA completion production and HTTP chain never call or gate on truck appointments', () => {
const service = source('../../firstleg/src/main/java/com/baiyue/firstleg/service/LoadingPickService.java')
const serviceTest = source('../../firstleg/src/test/java/com/baiyue/firstleg/service/LoadingPickServiceTest.java')
const loading = source('./phase3-loading.mjs')
assert.doesNotMatch(service, /TruckAppointmentService|completeLoadingFromPda|completeTruckAfterCommit/)
assert.match(serviceTest, /completionWorkerIsIndependentOfEveryTruckAppointmentState/)
for (const state of ['NO_APPOINTMENT', 'DRAFT', 'IN_PROGRESS', 'COMPLETED']) {
assert.match(serviceTest, new RegExp(state))
}
assert.match(serviceTest, /failedSameOperationIdCanResumeWithoutCreatingAnotherCommand[\s\S]*assertNoTruckCoupling/)
assert.match(serviceTest, /secondCustomerOwnerReadyFailureLeavesEveryOwnerUnsettledAndUncompleted[\s\S]*assertNoTruckCoupling/)
assert.match(serviceTest, /workerRestartResumesFromOwnerCheckpointsWithoutRepeatingSettlements[\s\S]*assertNoTruckCoupling/)
assert.doesNotMatch(loading, /\/truck-appointments|completeLoadingFromPda/)
})
test('push replay and both conflict modes preserve the complete pre-PDA snapshot', () => {