test: cover partial and concurrent pda completion

This commit is contained in:
2026-08-25 09:58:59 +08:00
parent b67217332a
commit cb78bc6b41
4 changed files with 81 additions and 7 deletions
@@ -142,3 +142,26 @@ test('HTTP finalizer preserves failure evidence and verifies the settled slice',
assert.match(finalize, /traceId=\$\{completeResponse\.traceId \|\| 'missing'\}/)
assert.match(finalize, /settlementMode = remainderSlice \? 'PARTIAL' : 'FULL'/)
})
test('HTTP finalizer races distinct completion keys and persists exactly one terminal audit', () => {
ordered(finalize, [
'读取结算前 PDA 操作历史基线',
'const completeAttempts = [1, 2].map',
'const concurrentCompleteResponses = await Promise.all',
'并发完成后回查 PDA 操作审计',
'两个不同幂等键并发 complete 仅一成功且只写一条完成审计',
'订舱与五类证据等保留门禁齐备后完成装柜',
'LOADED 完成请求 Idempotency-Key 重放保持终态',
'入库单终态 LOADED、版本递增且审计历史存在',
])
assert.match(finalize, /pda-final-complete-concurrent-\$\{index\}/)
assert.match(finalize, /p3-complete-concurrent-key-\$\{index\}/)
assert.match(finalize, /successfulCompleteIndexes\.length === 1/)
assert.match(finalize, /conflictedCompleteIndexes\.length === 1/)
assert.match(finalize, /codeOf\(response\) === 'A0409'/)
assert.match(finalize, /Boolean\(conflictedCompleteResponse\?\.requestId\)/)
assert.match(finalize, /Boolean\(conflictedCompleteResponse\?\.traceId\)/)
assert.match(finalize, /operationsAfterConcurrent\.length === operationsBefore\.length \+ 1/)
assert.match(finalize, /concurrentCompleteOperations\.length === 1/)
assert.match(finalize, /concurrentCompleteOperations\[0\]\?\.operationId === completeBody\.operationId/)
})