From 735b5abdcc16569d64a0121b27709625270d8799 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Tue, 8 Sep 2026 23:11:49 +0800 Subject: [PATCH] fix(scripts): read container workbench payload --- .../container-detail-route-contract.test.mjs | 9 +++++++++ .../admin-test-env-modules/phase3-container-loading.mjs | 9 ++++++--- scripts/admin-test-env-modules/phase3-loading.mjs | 3 ++- .../phase3-producer-chain-contract.test.mjs | 1 + scripts/admin-test-env-modules/service-center-flow.mjs | 3 +-- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/scripts/admin-test-env-modules/container-detail-route-contract.test.mjs b/scripts/admin-test-env-modules/container-detail-route-contract.test.mjs index 033dba88f..c6eb74552 100644 --- a/scripts/admin-test-env-modules/container-detail-route-contract.test.mjs +++ b/scripts/admin-test-env-modules/container-detail-route-contract.test.mjs @@ -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')) +}) diff --git a/scripts/admin-test-env-modules/phase3-container-loading.mjs b/scripts/admin-test-env-modules/phase3-container-loading.mjs index 263364c34..36c513807 100644 --- a/scripts/admin-test-env-modules/phase3-container-loading.mjs +++ b/scripts/admin-test-env-modules/phase3-container-loading.mjs @@ -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), diff --git a/scripts/admin-test-env-modules/phase3-loading.mjs b/scripts/admin-test-env-modules/phase3-loading.mjs index 7a0653e84..f581ef115 100644 --- a/scripts/admin-test-env-modules/phase3-loading.mjs +++ b/scripts/admin-test-env-modules/phase3-loading.mjs @@ -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 }), diff --git a/scripts/admin-test-env-modules/phase3-producer-chain-contract.test.mjs b/scripts/admin-test-env-modules/phase3-producer-chain-contract.test.mjs index a3b21bb01..b9239136a 100644 --- a/scripts/admin-test-env-modules/phase3-producer-chain-contract.test.mjs +++ b/scripts/admin-test-env-modules/phase3-producer-chain-contract.test.mjs @@ -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'", diff --git a/scripts/admin-test-env-modules/service-center-flow.mjs b/scripts/admin-test-env-modules/service-center-flow.mjs index e5ecff44d..3675426e9 100644 --- a/scripts/admin-test-env-modules/service-center-flow.mjs +++ b/scripts/admin-test-env-modules/service-center-flow.mjs @@ -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: '链路联系人',