diff --git a/scripts/admin-test-env-acceptance.mjs b/scripts/admin-test-env-acceptance.mjs index f01a0e298..ed0d490b2 100644 --- a/scripts/admin-test-env-acceptance.mjs +++ b/scripts/admin-test-env-acceptance.mjs @@ -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'] diff --git a/scripts/full-regression-entry-contract.test.mjs b/scripts/full-regression-entry-contract.test.mjs index 34794dea8..82eb5278e 100644 --- a/scripts/full-regression-entry-contract.test.mjs +++ b/scripts/full-regression-entry-contract.test.mjs @@ -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), [