fix(scripts): read container workbench payload
This commit is contained in:
@@ -8,13 +8,22 @@ test('domestic container fixtures use the current workbench detail route', () =>
|
||||
const containerLoading = read('./phase3-container-loading.mjs')
|
||||
assert.ok(containerLoading.includes("context.request('GET', `${CONTAINERS}/domestic/${containerId}`)"))
|
||||
assert.ok(!containerLoading.includes("context.request('GET', `${CONTAINERS}/${containerId}`)"))
|
||||
assert.ok(containerLoading.includes('const containerDetail = containerWorkbench?.container'))
|
||||
assert.ok(containerLoading.includes('const simulationBeforeLink = simulationWorkbench?.container'))
|
||||
|
||||
const loading = read('./phase3-loading.mjs')
|
||||
assert.ok(loading.includes("context.request('GET', `/api/platform/v1/containers/domestic/${containerBookingId}`)"))
|
||||
assert.ok(!loading.includes("context.request('GET', `/api/platform/v1/containers/${containerBookingId}`)"))
|
||||
assert.ok(loading.includes('const latestContainer = latestWorkbench?.container'))
|
||||
|
||||
const crossRegion = read('./phase4-cross-region-events.mjs')
|
||||
const fixtureId = 'encodeURIComponent(id(phase3.containerBookingId))'
|
||||
assert.ok(crossRegion.includes(`/api/platform/v1/containers/domestic/\${${fixtureId}}`))
|
||||
assert.ok(!crossRegion.includes(`/api/platform/v1/containers/\${${fixtureId}}`))
|
||||
})
|
||||
|
||||
test('service center truck fixture uses the released booking warehouse', () => {
|
||||
const source = read('./service-center-flow.mjs')
|
||||
assert.ok(source.includes('warehouseId: id(booking?.warehouseId)'))
|
||||
assert.ok(!source.includes('context.createdResources?.warehouse?.id'))
|
||||
})
|
||||
|
||||
@@ -259,7 +259,8 @@ export async function run(context) {
|
||||
}
|
||||
|
||||
const containerDetailResponse = await context.request('GET', `${CONTAINERS}/domestic/${containerId}`)
|
||||
const containerDetail = context.apiSuccess(MODULE, '回查货柜详情', containerDetailResponse, '', OPTIONS)
|
||||
const containerWorkbench = context.apiSuccess(MODULE, '回查货柜详情', containerDetailResponse, '', OPTIONS)
|
||||
const containerDetail = containerWorkbench?.container
|
||||
context.assert(MODULE, '货柜详情保留候选货物路线约束', containerDetailResponse,
|
||||
(!containerDetail?.destinationWarehouseCode || !candidate.destinationWarehouseCode
|
||||
|| containerDetail.destinationWarehouseCode === candidate.destinationWarehouseCode)
|
||||
@@ -399,7 +400,8 @@ export async function run(context) {
|
||||
if (!unlinkedTaskAbsent) return
|
||||
|
||||
const simulationBeforeLinkResponse = await context.request('GET', `${CONTAINERS}/domestic/${containerId}`)
|
||||
const simulationBeforeLink = context.apiSuccess(MODULE, '预装确认前读取模拟柜最新版本', simulationBeforeLinkResponse, '', OPTIONS)
|
||||
const simulationWorkbench = context.apiSuccess(MODULE, '预装确认前读取模拟柜最新版本', simulationBeforeLinkResponse, '', OPTIONS)
|
||||
const simulationBeforeLink = simulationWorkbench?.container
|
||||
if (!Number.isInteger(Number(simulationBeforeLink?.version))) return
|
||||
|
||||
const bookingCreate = await request(context, 'POST', '/api/platform/v1/ocean-bookings',
|
||||
@@ -590,7 +592,8 @@ export async function run(context) {
|
||||
if (!taskId || !pickItem?.id) return
|
||||
|
||||
const releasedContainerResponse = await context.request('GET', `${CONTAINERS}/domestic/${containerId}`)
|
||||
const releasedContainer = context.apiSuccess(MODULE, '任务生成后回查货柜运输版本', releasedContainerResponse, '', OPTIONS)
|
||||
const releasedWorkbench = context.apiSuccess(MODULE, '任务生成后回查货柜运输版本', releasedContainerResponse, '', OPTIONS)
|
||||
const releasedContainer = releasedWorkbench?.container
|
||||
|
||||
const stableIdentity = {
|
||||
taskId, loadingPlanId: id(task.loadingPlanId), containerBookingId: id(task.containerBookingId),
|
||||
|
||||
@@ -507,7 +507,8 @@ export async function run(context) {
|
||||
`bookingId=${bookingId || 'missing'}, status=${bookingConfirmed?.oceanBooking?.status || 'missing'}`, OPTIONS)
|
||||
if (!bookingId || !requirement?.id || !frozenTransportMatches) return
|
||||
const latestContainerResponse = await context.request('GET', `/api/platform/v1/containers/domestic/${containerBookingId}`)
|
||||
const latestContainer = context.apiSuccess(MODULE, '合并前读取模拟柜最新版本', latestContainerResponse, '', OPTIONS)
|
||||
const latestWorkbench = context.apiSuccess(MODULE, '合并前读取模拟柜最新版本', latestContainerResponse, '', OPTIONS)
|
||||
const latestContainer = latestWorkbench?.container
|
||||
const linkResponse = await request(context, 'POST', `/api/platform/v1/containers/${containerBookingId}/ocean-booking-link`, {
|
||||
oceanBookingId: bookingId, requirementId: id(requirement.id),
|
||||
...(LATE_CONTAINER_GATE_ONLY ? {} : { containerNo }),
|
||||
|
||||
@@ -71,6 +71,7 @@ test('records LOADED and clears the reason only after a real LOADED reread', ()
|
||||
|
||||
test('container loading follows push, claim, real pick, completed sequence', () => {
|
||||
const value = source('./phase3-container-loading.mjs')
|
||||
assert.match(value, /const containerDetail = containerWorkbench\?\.container/)
|
||||
assert.match(value, /\['EDITING', 'WAIT_LOADING'\]\.includes\(containerDetail\?\.planStatus\)/)
|
||||
assertOrder(value, [
|
||||
"pushed?.status === 'EDITING'",
|
||||
|
||||
@@ -84,8 +84,7 @@ export async function run(context) {
|
||||
const payload = {
|
||||
outboundOrderId: null,
|
||||
oceanBookingId: ocean.id,
|
||||
warehouseId: id(containerFlow?.warehouseId
|
||||
|| context.createdResources?.warehouse?.id || context.context?.warehouseId || '193000000000000001'),
|
||||
warehouseId: id(booking?.warehouseId),
|
||||
carrierId: id(carrier.id), carrierName: carrier.name,
|
||||
fleetContact: '链路车队联系人', fleetPhone: '13800000007', driverName: '链路司机', driverPhone: '13800000008',
|
||||
driverIdCard: null, vehicleNo: `粤D-${suffix.slice(-6)}`, storeName: `链路门店-${suffix}`, storeContact: '链路联系人',
|
||||
|
||||
Reference in New Issue
Block a user