test(fba): preserve verified fleet and fulfillment acceptance workflows

This commit is contained in:
2026-10-03 06:26:33 +08:00
parent c55bd7f4b6
commit d858357c5d
52 changed files with 4217 additions and 103 deletions
@@ -15,9 +15,6 @@ const FIXTURE_UNAVAILABLE = {
INBOUNDING: '自动入库在同一调用内继续推进 WAIT_SPLIT,无可暂停 API',
VOIDED: '当前 Controller/Service 没有作废入库单的公开 API',
},
unifiedOrders: {
DELIVERED: '当前后端没有完成派送并写入 DELIVERED 的公开业务 API',
},
}
function rows(value) { return Array.isArray(value) ? value : [] }
@@ -46,6 +43,25 @@ export function missingRequiredStateFixtures(matrix) {
.map((status) => `${page}:${status}`))
}
export async function attachDeliveredOrderFixture(context, matrix) {
const fulfilled = context.createdResources?.phase5OverseasFulfillment
const proof = fulfilled?.orderCompletionProof
const customerId = id(proof?.customerId)
const orderId = id(proof?.rootOrderId)
if (fulfilled?.marker !== context.marker || !customerId || !orderId || !proof?.rootDelivered || proof.expectedCompleted !== false) {
throw new Error('DELIVERED 样本须复用本轮已签收且仍有有效余量的履约根')
}
const response = await context.request('GET',
`/api/platform/v1/orders/${encodeURIComponent(orderId)}?tenantId=${encodeURIComponent(customerId)}`)
const detail = context.apiSuccess(MODULE, '回读真实签收产生的 DELIVERED 统一订单', response, '', OPTIONS)
const valid = id(detail?.summary?.orderId) === orderId && detail?.summary?.mainStatus === 'DELIVERED'
context.assert(MODULE, 'DELIVERED 样本客户与真实根签收状态正确', response, valid,
`orderId=${orderId}, status=${detail?.summary?.mainStatus || 'missing'}`, OPTIONS)
if (!valid) throw new Error('DELIVERED 履约根详情未收敛到真实签收状态')
matrix.pages.unifiedOrders.fixtures.DELIVERED = { id: orderId, status: 'DELIVERED',
customerId, detailPath: `/orders/${orderId}` }
}
function registerFixtureUnavailableGaps(context, matrix) {
for (const [page, value] of Object.entries(matrix?.pages || {})) {
for (const [status, gap] of Object.entries(value?.coverageGaps || {})) {
@@ -102,6 +118,7 @@ export async function run(context) {
}
await attachUnifiedOrderFixture(context, matrix, 'phase3Loading', 'LOADED')
await attachDeliveredOrderFixture(context, matrix)
normalizeStateRequirements(matrix)
registerFixtureUnavailableGaps(context, matrix)