test: support manual dropship count fixtures

This commit is contained in:
2026-09-11 16:34:40 +08:00
parent 010475a4c3
commit 87ae82a114
2 changed files with 11 additions and 5 deletions
+6 -3
View File
@@ -776,10 +776,12 @@ export class AcceptanceRun {
captureWaitSplitFixture(sequence) {
const order = this.createdResources.orders || {}
const measurement = this.createdResources.inboundMeasurement || {}
const expectedProcessStatus = this.options.prepareDropshipManualCount ? 'WAIT_PALLETIZE' : 'WAIT_SPLIT'
const ready = Boolean(order.orderId && measurement.inboundId
&& String(order.tenantId) === String(measurement.tenantId)
&& measurement.processStatus === 'WAIT_SPLIT' && measurement.finalStatus === 'APPROVED')
this.assert('wait-split-fixtures', `固定客户第 ${sequence} 单停在待分柜`, null, ready,
&& measurement.processStatus === expectedProcessStatus && measurement.finalStatus === 'APPROVED')
this.assert('wait-split-fixtures', this.options.prepareDropshipManualCount
? `固定客户第 ${sequence} 单停在PDA清点前` : `固定客户第 ${sequence} 单停在待分柜`, null, ready,
`tenantId=${measurement.tenantId || 'missing'}, orderId=${order.orderId || 'missing'}, inboundId=${measurement.inboundId || 'missing'}, processStatus=${measurement.processStatus || 'missing'}, reviewStatus=${measurement.finalStatus || 'missing'}`,
{ scenario: 'fixed-customer-wait-split', deploymentBlocker: true })
if (!ready) return false
@@ -789,7 +791,8 @@ export class AcceptanceRun {
orderNo: order.orderNo || null, inboundId: String(measurement.inboundId),
inboundCode: order.inboundCode || null, processStatus: measurement.processStatus,
reviewStatus: measurement.finalStatus, skuCount: order.skuLines?.length || null,
totalPackageCount: (order.skuLines || []).reduce((sum, item) => sum + Number(item.packageCount || 0), 0),
totalPackageCount: measurement.actualPackageCount
|| (order.skuLines || []).reduce((sum, item) => sum + Number(item.packageCount || 0), 0),
palletCount: measurement.palletCount || null,
actualGrossWeightKg: measurement.actualGrossWeightKg || null,
actualNetWeightKg: measurement.actualNetWeightKg || null,
@@ -784,8 +784,10 @@ export async function run(context) {
measured = context.apiSuccess(MODULE, '回查增量 fixture 动态测量明细', measuredResponse, '', OPTIONS)
measuredItem = measured?.items?.find((item) => asId(item.id) === asId(firstScan.itemId))
const detailIds = new Set((measured?.items || []).map((item) => asId(item?.inboundDetailId)).filter(Boolean))
context.assert(MODULE, '增量 fixture 形成动态真实独立货物测量明细', measuredResponse,
detailIds.size >= incrementalDetailCount
const mixedDropship = context.createdResources?.orders?.fulfillmentType === 'ONE_CLICK_DROPSHIP'
context.assert(MODULE, mixedDropship
? '混箱一件代发复用物理箱测量明细' : '增量 fixture 形成动态真实独立货物测量明细', measuredResponse,
mixedDropship ? detailIds.size === 1 : detailIds.size >= incrementalDetailCount
&& measured.items.filter((item) => detailIds.has(asId(item?.inboundDetailId))).length >= incrementalDetailCount,
`measurementItems=${measured?.items?.length ?? 'missing'}, distinctInboundDetails=${detailIds.size}`, OPTIONS)
}
@@ -1096,6 +1098,7 @@ export async function run(context) {
boxCode, finalStatus: finalMeasurement?.measurementStatus || null,
processStatus: finalMeasurement?.processStatus || null,
palletCount: weightEvidence.count, actualGrossWeightKg: weightEvidence.grossWeightKg,
actualPackageCount: Number(finalMeasurement?.actualPackageCount || 0),
destinationType: context.createdResources?.orders?.destinationType || null,
destinationWarehouseId: context.createdResources?.orders?.destinationWarehouseId || null,
destinationWarehouseCode: context.createdResources?.orders?.destinationWarehouseCode || null,