This commit is contained in:
2026-08-17 15:55:11 +08:00
parent 5f79616623
commit 68d9216cb8
21 changed files with 121 additions and 85 deletions
@@ -73,32 +73,25 @@ test('HTTP chain refreshes after stale inventory and keeps one stable PDA identi
assert.doesNotMatch(loading, /\/loading\/complete\?tenantId=/)
})
test('downstream modules keep the task pending until the transactional PDA final complete', () => {
test('downstream modules stop before HTTP until the new truck-coupled complete contract freezes', () => {
assert.match(convergence, /summary\?\.status === 'LOADING'/)
assert.match(convergence, /!operations\.some\(\(item\) => item\.actionType === 'COMPLETE_LOADING'\)/)
assert.match(customs, /\['AWAITING_REVIEW', 'LOADED'\]/)
assert.match(customs, /ensureReleasedOceanBooking/)
assert.doesNotMatch(customs, /truck\?\.finalStatus !== 'COMPLETED'/)
ordered(finalize, [
'最终完成前拖车与报关清关门禁属于同一稳定柜次',
'最终完成前四元身份稳定且任务等待人工确认',
'读取最终完成并发前计划即时版本',
'Admin 增量与 PDA final complete 并发恰好一个事务成功',
'订舱拖车报关齐备后完成装柜',
'统一硬门禁通过后 task 与 workflow 同事务完成且身份不漂移',
'入库单终态 LOADED、版本递增且审计历史存在',
'统一硬门禁通过后五类有效证据仍完整',
'COMPLETED 后新增计划明细被拒绝',
'COMPLETED 后调整计划明细被拒绝',
'COMPLETED 后删除计划明细被拒绝',
'最终装柜前保持 LOADING 且版本有效',
'PDA complete 联动拖车并原子推进 LOADED',
'return',
'const taskPath =',
])
assert.match(finalize, /`\$\{taskPath\}\/complete`/)
assert.match(finalize, /await Promise\.all\(/)
assert.match(finalize, /completeWon !== adjustWon/)
assert.match(finalize, /BLOCKED_CONTRACT:用户已确认拖车缺失或未完成不再阻断/)
assert.doesNotMatch(finalize, /truck\?\.finalStatus === 'COMPLETED'/)
assert.doesNotMatch(finalize, /\/loading\/complete\?tenantId=/)
})
test('PDA final completion OpenAPI freezes zero-write gate semantics', () => {
test('current PDA complete OpenAPI remains a blocker because it still requires pre-completed truck', () => {
assert.match(pdaOpenApi, /\/api\/platform\/v1\/first-leg\/pda-loading\/tasks\/\{taskId\}\/complete:/)
assert.match(pdaOpenApi, /先无写入校验全部关联入库单的RELEASED订舱、COMPLETED拖车和五类ACTIVE证据/)
assert.match(pdaOpenApi, /任何阻断返回A0409且task、plan、inbound仍保持LOADING/)
assert.match(pdaOpenApi, /全部满足后在同一事务内结算资源、完成task\/plan并推进inbound为LOADED/)
assert.match(finalize, /BLOCKED_CONTRACT/)
})