test: align phase five dev acceptance flows
This commit is contained in:
@@ -367,6 +367,7 @@ test('channel isolation reports BLOCKED_FIXTURE instead of inventing a second ch
|
||||
const value = source('./phase3-container-loading.mjs')
|
||||
assert.doesNotMatch(value, /foreignChannelCode|\$\{channelCode\}-OTHER|异渠道-\$\{suffix\}/)
|
||||
assert.match(value, /context\.createdResources\?\.platformLogisticsChannels/)
|
||||
assert.match(value, /codeOf\(foreignAssignResponse\) === 'A0422'/)
|
||||
})
|
||||
|
||||
test('container loading enforces channel isolation and stable PDA identity across container number changes', () => {
|
||||
@@ -460,10 +461,10 @@ test('PDA completion acceptance verifies immutable BATCH and COMPLETE_LOADING au
|
||||
for (const key of ['bridge-batch', 'exception-skip-batch', 'exception-partial-batch', 'dynamic-pick']) {
|
||||
assert.match(loading, new RegExp(key))
|
||||
}
|
||||
assert.match(loading, /expectedBatchOperationIds = \[batchKey, skipBatchKey, partialBatchKey, dynamicBatchKey\]/)
|
||||
assert.match(loading, /expectedBatchOperationIds = dropshipWholePallet\s*\? \[batchKey\]\s*:\s*\[batchKey, skipBatchKey, partialBatchKey, dynamicBatchKey\]/)
|
||||
assert.match(loading, /skipBatchVerified, partialBatchVerified, dynamicIncrementVerified/)
|
||||
assert.match(convergence, /expectedBatchOperationIds\.length === 4/)
|
||||
assert.doesNotMatch(convergence, /expectedBatchCount = fixture\?\.dynamicIncrementVerified/)
|
||||
assert.match(convergence, /expectedBatchCount = fixture\?\.fulfillmentType === 'ONE_CLICK_DROPSHIP' \? 1 : 4/)
|
||||
assert.match(convergence, /expectedBatchOperationIds\.length === expectedBatchCount/)
|
||||
})
|
||||
|
||||
test('phase3 loading proves mixed-line rollback across task, all items and operations', () => {
|
||||
@@ -591,7 +592,10 @@ test('downstream container consumers prefer the phase3Loading fixture', () => {
|
||||
assert.match(serviceCenter, /if \(!allocationMatches\) return/)
|
||||
assert.match(serviceCenter, /category=TRUCKING&status=ACTIVE/)
|
||||
assert.match(serviceCenter, /oceanBookingId: ocean\.id/)
|
||||
assert.match(serviceCenter, /containerBookingId: linkContainer \? id\(containerFlow\.containerBookingId\) : null/)
|
||||
assert.match(serviceCenter, /FORBIDDEN_TRUCK_FIELDS = \['customerId', 'customerName', 'containerBookingId', 'loadingPlanId'/)
|
||||
assert.match(serviceCenter, /bookingLevel\(payload\)/)
|
||||
assert.match(serviceCenter, /bookingLevel\(appointment\)/)
|
||||
assert.doesNotMatch(serviceCenter, /containerBookingId:\s*linkContainer|loadingPlanId:\s*linkContainer/)
|
||||
assert.match(serviceCenter, /carrierId: id\(carrier\.id\), carrierName: carrier\.name/)
|
||||
assert.doesNotMatch(serviceCenter, /customerId:|customerName:/)
|
||||
assert.doesNotMatch(serviceCenter, /链路承运商-/)
|
||||
@@ -603,6 +607,10 @@ test('downstream container consumers prefer the phase3Loading fixture', () => {
|
||||
assert.match(schedules, /allocatedContainerBookingIds: \(detail\.containers \|\| \[\]\)/)
|
||||
assert.match(schedules, /ocean\.allocatedContainerBookingIds\?\.includes\(containerBookingId\)/)
|
||||
assert.match(schedules, /if \(containerBookingId && !knownAllocation\)/)
|
||||
assert.match(schedules, /outbound-dispatches/)
|
||||
assert.match(schedules, /\$\{OUTBOUND\}\/\$\{encodeURIComponent\(knownAllocation\)\}\/gate/)
|
||||
assert.match(schedules, /item\?\.code !== 'SAILING_SCHEDULE'/)
|
||||
assert.doesNotMatch(schedules, /\/check-gate\?|find\?\.\(\(item\) => item\?\.code === 'SAILING_SCHEDULE'/)
|
||||
})
|
||||
|
||||
test('default acceptance order finalizes LOADED before customs reads fulfillment slices', () => {
|
||||
@@ -728,6 +736,8 @@ test('loaded boundary acceptance proves evidence and transport immutability with
|
||||
assert.match(finalize, /evidenceSignature\(afterEvidence\) === immutableEvidenceSignature/)
|
||||
assert.match(finalize, /afterHistorySignature === historySignature/)
|
||||
assert.match(finalize, /afterPlanSignature === immutablePlanSignature/)
|
||||
assert.match(finalize, /warehouseId: id\(fixture\.warehouseId\)/)
|
||||
assert.doesNotMatch(finalize, /warehouseId: Number\(fixture\.warehouseId\)/)
|
||||
})
|
||||
|
||||
test('finalize publishes a current-marker producer correlation for cross-region verification', () => {
|
||||
|
||||
Reference in New Issue
Block a user