test(phase3): finalize loading before split acceptance

This commit is contained in:
2026-08-24 14:34:01 +08:00
parent e781cbe9cb
commit 2f32f1d827
2 changed files with 18 additions and 4 deletions
+9 -4
View File
@@ -43,17 +43,22 @@ export function normalizeModuleOrder(modules) {
}
}
if (normalized.includes('phase3-order-splitting')) {
const prerequisites = ['merchant-qualification-fixture', 'phase3-container-loading', 'phase3-loading']
const prerequisites = [
'merchant-qualification-fixture',
'phase3-container-loading',
'phase3-loading',
'phase3-loading-finalize',
]
for (const prerequisite of prerequisites) {
if (!normalized.includes(prerequisite)) {
normalized.splice(normalized.indexOf('phase3-order-splitting'), 0, prerequisite)
}
}
const splitIndex = normalized.indexOf('phase3-order-splitting')
const loadingIndex = normalized.indexOf('phase3-loading')
if (splitIndex < loadingIndex) {
const finalizeIndex = normalized.indexOf('phase3-loading-finalize')
if (splitIndex < finalizeIndex) {
normalized.splice(splitIndex, 1)
normalized.splice(normalized.indexOf('phase3-loading') + 1, 0, 'phase3-order-splitting')
normalized.splice(normalized.indexOf('phase3-loading-finalize') + 1, 0, 'phase3-order-splitting')
}
}
const financeChain = ['finance-full-fixtures', 'finance-reconciliation-full', 'finance-settlement-full']
@@ -150,6 +150,15 @@ test('default Admin HTTP entry completes settlement before customs consumes load
assert.doesNotMatch(finalize, /truck\?\.finalStatus === 'COMPLETED'/)
})
test('focused order splitting completes the initial loading settlement first', () => {
const focused = normalizeModuleOrder(['phase3-order-splitting'])
const loading = focused.indexOf('phase3-loading')
const finalize = focused.indexOf('phase3-loading-finalize')
const splitting = focused.indexOf('phase3-order-splitting')
assert.ok(loading >= 0 && finalize > loading && splitting > finalize)
})
test('Finance-only HTTP entry expands producer prerequisites and runs downloads last', () => {
const focused = normalizeModuleOrder(['finance-downloads', 'finance-settlement-full'])
assert.deepEqual(focused.slice(0, 4), [