优化
This commit is contained in:
@@ -111,6 +111,7 @@ test('bridge loading starts through a real PDA batch before preload confirmation
|
||||
assert.match(value, /version: transportVersion/)
|
||||
assert.match(value, /Number\.isInteger\(transportVersion\)/)
|
||||
assert.match(value, /billOfLadingNo:[\s\S]*vesselName:[\s\S]*voyageNo:[\s\S]*estimatedSailingAt:[\s\S]*estimatedArrivalAt:/)
|
||||
assert.doesNotMatch(value, /P3-SHIPPING|P3-AGENT/)
|
||||
assert.match(value, /const frozenTransport = Object\.fromEntries\(transportFields\.map/)
|
||||
assert.match(value, /const frozenTransportMatches = frozenTransportValid[\s\S]*transportFields\.every/)
|
||||
assertOrder(value, [
|
||||
@@ -123,6 +124,20 @@ test('bridge loading starts through a real PDA batch before preload confirmation
|
||||
assert.match(value, /bookingReleased\?\.oceanBooking\?\.status === 'RELEASED'/)
|
||||
})
|
||||
|
||||
test('finalize rechecks the same unified order detail and list as LOADED', () => {
|
||||
const value = source('./phase3-loading-finalize.mjs')
|
||||
assertOrder(value, [
|
||||
'入库单终态 LOADED、版本递增且审计历史存在',
|
||||
'LOADED 后回查同一统一订单详情',
|
||||
'统一订单详情投影同一订单为 LOADED',
|
||||
'LOADED 后回查同一统一订单列表',
|
||||
'统一订单列表投影同一订单为 LOADED',
|
||||
])
|
||||
assert.match(value, /summary\?\.mainStatus === 'LOADED'/)
|
||||
assert.match(value, /unifiedRow\?\.mainStatus === 'LOADED'/)
|
||||
assert.match(source('./phase3-loading.mjs'), /tenantId, orderId: id\(source\?\.orderId\), inboundId/)
|
||||
})
|
||||
|
||||
test('PDA inventory snapshot gates batch and records the only safe mutation gap', () => {
|
||||
const loading = source('./phase3-loading.mjs')
|
||||
assertOrder(loading, [
|
||||
@@ -285,6 +300,14 @@ test('container loading enforces channel isolation and stable PDA identity acros
|
||||
assert.match(value, /id\(replacedTask\?\.cabinetNo\) === stableIdentity\.cabinetNo/)
|
||||
assert.match(value, /afterReplacementSnapshot\?\.snapshotToken === beforeReplacementSnapshot\?\.snapshotToken/)
|
||||
assert.match(value, /pdaIdentityStable: true/)
|
||||
assert.match(value, /shippingCompanyId: null, shippingCompanyName: null/)
|
||||
assert.match(value, /bookingAgentId: null, bookingAgentName: null/)
|
||||
assert.doesNotMatch(value, /shippingCompanyName: `验收船公司-/)
|
||||
assert.doesNotMatch(value, /bookingAgentName: `验收代理-/)
|
||||
assert.match(value, /const frozenTransport = Object\.fromEntries\(transportFields\.map/)
|
||||
assert.match(value, /if \(!frozenTransportMatches\) return/)
|
||||
assert.match(value, /expectedVersion: Number\(confirmedBooking\?\.oceanBooking\?\.version\),\s*\.\.\.frozenTransport, reason: context\.marker/s)
|
||||
assert.doesNotMatch(value, /const sailingAt = new Date\(Date\.now\(\)/)
|
||||
const batch = value.slice(value.indexOf('const staleBatchResponse'), value.indexOf('const completePath'))
|
||||
assert.doesNotMatch(batch, /containerNo:/)
|
||||
})
|
||||
@@ -355,6 +378,11 @@ test('customs provisions released booking and completed truck for the selected l
|
||||
])
|
||||
assert.match(value, /oceanBookings\.run\(context\)/)
|
||||
assert.match(value, /serviceCenter\.run\(context\)/)
|
||||
assert.match(value, /request\('POST', '\/api\/platform\/v1\/suppliers\?tenantId=0'/)
|
||||
assert.match(value, /category: 'CUSTOMS'/)
|
||||
assert.match(value, /context\.createdResources\.phase3CustomsSupplier/)
|
||||
assert.match(value, /const batchPayload = \{ customsAgentId,/)
|
||||
assert.doesNotMatch(value, /customsAgentName: `代理-/)
|
||||
})
|
||||
|
||||
test('downstream producers prefer the phase3Loading container fixture', () => {
|
||||
@@ -376,6 +404,8 @@ test('downstream producers prefer the phase3Loading container fixture', () => {
|
||||
assert.match(serviceCenter, /if \(!allocationMatches\) return/)
|
||||
assert.match(serviceCenter, /const customerName = String\(oceanDetail\?\.oceanBooking\?\.customerName \|\| ''\)\.trim\(\)/)
|
||||
assert.match(serviceCenter, /customerId, customerName, carrierId: null/)
|
||||
assert.match(serviceCenter, /carrierId: null, carrierName: null/)
|
||||
assert.doesNotMatch(serviceCenter, /链路承运商-/)
|
||||
assert.doesNotMatch(serviceCenter, /customerName: `服务中心链路客户-/)
|
||||
const schedules = source('./phase3-port-schedules.mjs')
|
||||
assert.match(schedules, /allocatedContainerBookingIds: \(detail\.containerAllocations \|\| \[\]\)/)
|
||||
|
||||
Reference in New Issue
Block a user