fix: treat missing return records as empty results

This commit is contained in:
2026-09-11 15:01:17 +08:00
parent f7d3a9a73f
commit fdd9302c4d
6 changed files with 69 additions and 11 deletions
+12
View File
@@ -28,3 +28,15 @@ test('return packing API uses exact PDA inventory routes without submitting cust
assert.ok(calls.every((item) => item.authorization === 'Bearer packing-token'))
assert.ok(calls.every((item) => !Object.hasOwn(item.data || {}, 'customerId') && !Object.hasOwn(item.data || {}, 'warehouseId')))
})
test('return packing lookup treats not found as an empty preview', async () => {
session.apiBase = '/overseas-api'; session.token = 'packing-token'
globalThis.uni = { request(options) { options.success({ statusCode: 404, data: { code: 'A0404', message: '没有匹配的可合箱库存' }, header: {} }) } }
assert.deepEqual(await findPackingOrders('MISSING-RETURN'), { customerKey: '', orders: [], skus: [] })
})
test('return packing lookup still rejects real service errors', async () => {
session.apiBase = '/overseas-api'; session.token = 'packing-token'
globalThis.uni = { request(options) { options.success({ statusCode: 500, data: { code: 'B0500', message: '服务暂不可用' }, header: {} }) } }
await assert.rejects(() => findPackingOrders('RT-1'), (error) => error.code === 'B0500')
})
+24
View File
@@ -50,3 +50,27 @@ test('return receipt API calls only the dedicated PDA routes and preserves the r
assert.ok(calls.every((item) => item.authorization === 'Bearer return-token'))
assert.ok(calls.every((item) => !Object.hasOwn(item.data || {}, 'customerId') && !Object.hasOwn(item.data || {}, 'warehouseId')))
})
test('return receipt lookup treats A0404 and HTTP 404 as empty results', async () => {
session.apiBase = '/overseas-api'; session.token = 'return-token'
let requestCount = 0
globalThis.uni = {
request(options) {
requestCount += 1
if (requestCount === 1) options.success({ statusCode: 404, data: { code: 'A0404', message: '当前仓没有待签收或签收中的退货单' }, header: {} })
else options.success({ statusCode: 404, data: {}, header: {} })
}
}
assert.equal(await startReturnReceipt('MISSING-RETURN'), null)
assert.deepEqual(await findReturnSkuCandidates('MISSING-SKU'), { skuCode: 'MISSING-SKU', candidates: [] })
})
test('return receipt lookup still rejects real service errors', async () => {
session.apiBase = '/overseas-api'; session.token = 'return-token'
globalThis.uni = {
request(options) {
options.success({ statusCode: 500, data: { code: 'B0500', message: '服务暂不可用' }, header: {} })
}
}
await assert.rejects(() => startReturnReceipt('RT-001'), (error) => error.code === 'B0500')
})