test(admin): align phase3 PDA direct completion fixtures

This commit is contained in:
2026-08-11 11:11:57 +08:00
parent 166ebfb7ef
commit fe0f1665e5
3 changed files with 34 additions and 26 deletions
@@ -207,15 +207,17 @@ export async function run(context) {
}
const pickResponse = await request(context, 'POST', `${PDA}/tasks/${taskId}/items/${id(pickItem.id)}/pick`, pickPayload)
const picked = context.apiSuccess(MODULE, '执行本轮 PDA 全量拣货', pickResponse, '', OPTIONS)
context.assert(MODULE, '最后一箱拣货后 PDA 任务等待复核', pickResponse,
picked?.taskStatus === 'LOADING' && picked?.workflowStatus === 'AWAITING_REVIEW'
const directPdaCompletion = picked?.taskStatus === 'COMPLETED'
&& picked?.workflowStatus === 'COMPLETED'
context.assert(MODULE, '最后一箱拣货后 PDA 任务按已部署契约直接完成', pickResponse,
directPdaCompletion
&& picked?.items?.every?.((item) => Number(item.pickedPackageCount) === Number(item.plannedPackageCount)),
`taskStatus=${picked?.taskStatus || 'missing'}, workflow=${picked?.workflowStatus || 'missing'}`, OPTIONS)
const pickReplayResponse = await request(context, 'POST', `${PDA}/tasks/${taskId}/items/${id(pickItem.id)}/pick`, pickPayload)
const pickReplay = context.apiSuccess(MODULE, 'PDA operationId 幂等重放', pickReplayResponse, '', OPTIONS)
context.assert(MODULE, 'PDA 重放保持待复核任务和拣货数', pickReplayResponse,
pickReplay?.taskStatus === 'LOADING' && pickReplay?.workflowStatus === 'AWAITING_REVIEW'
context.assert(MODULE, 'PDA 重放保持完成任务和拣货数', pickReplayResponse,
pickReplay?.taskStatus === 'COMPLETED' && pickReplay?.workflowStatus === 'COMPLETED'
&& pickReplay?.items?.every?.((item) => Number(item.pickedPackageCount) === Number(item.plannedPackageCount)),
`taskStatus=${pickReplay?.taskStatus || 'missing'}`, OPTIONS)
@@ -223,11 +225,9 @@ export async function run(context) {
expectedTaskVersion: Number(picked?.version), operationId: `${context.marker}-pda-review`.slice(0, 128),
remark: context.marker,
})
const reviewed = context.apiSuccess(MODULE, '复核本轮柜次 PDA 任务', reviewResponse, '', OPTIONS)
context.assert(MODULE, '复核后任务与柜次计划进入真实完成态', reviewResponse,
reviewed?.taskStatus === 'COMPLETED' && reviewed?.workflowStatus === 'COMPLETED'
&& reviewed?.review?.status === 'APPROVED' && Boolean(reviewed?.review?.reviewedBy),
`taskStatus=${reviewed?.taskStatus || 'missing'}, review=${reviewed?.review?.status || 'missing'}`, OPTIONS)
context.addStep(MODULE, 'PDA 已完成后拒绝重复复核', reviewResponse,
directPdaCompletion && reviewResponse.http === 200 && codeOf(reviewResponse) === 'A0409',
`HTTP=${reviewResponse.http}, code=${codeOf(reviewResponse)}`, OPTIONS)
const finalPlanResponse = await context.request('GET', `${SMART}/plans/${planId}`)
const finalPlan = context.apiSuccess(MODULE, '回查柜次装柜计划终态', finalPlanResponse, '', OPTIONS)
@@ -263,7 +263,7 @@ export async function run(context) {
context.createdResources.phase3ContainerLoading = {
marker: context.marker, tenantId, inboundId, warehouseId, containerBookingId: containerId,
loadingPlanId: planId, pdaTaskId: taskId, pdaReviewVersion: reviewed?.review?.version,
loadingPlanId: planId, pdaTaskId: taskId,
finalStatus: 'COMPLETED',
}
}