补充后端核心链路自动化测试

This commit is contained in:
yml
2026-04-14 10:57:15 +08:00
parent d827eac855
commit 006e68f7f6
8 changed files with 263 additions and 14 deletions
@@ -262,7 +262,7 @@ function generateSign(params, appSecret) {
return crypto.createHash('md5').update(raw, 'utf8').digest('hex').toLowerCase()
}
function isAgisoAutoDeliverySuccess(statusCode, payload) {
export function isAgisoAutoDeliverySuccess(statusCode, payload) {
if (statusCode < 200 || statusCode >= 300) {
return false
}
@@ -286,7 +286,7 @@ function isAgisoAutoDeliverySuccess(statusCode, payload) {
return false
}
function resolveAgisoAutoDeliveryErrorMessage(payload, rawText, statusCode) {
export function resolveAgisoAutoDeliveryErrorMessage(payload, rawText, statusCode) {
if (payload && typeof payload === 'object') {
for (const value of [payload.Error_Msg, payload.msg, payload.message, payload.error]) {
const normalized = String(value || '').trim()
@@ -4,6 +4,8 @@ import assert from 'node:assert/strict'
import {
hasAgisoAutoDeliverySucceeded,
isOrderReadyForAgisoAutoDelivery,
isAgisoAutoDeliverySuccess,
resolveAgisoAutoDeliveryErrorMessage,
} from './auto-delivery-service.js'
test('isOrderReadyForAgisoAutoDelivery requires every task to be delivered', () => {
@@ -28,3 +30,31 @@ test('hasAgisoAutoDeliverySucceeded detects successful context on any task', ()
{ context_json: { agisoAutoDelivery: { status: 'failed' } } },
]), false)
})
test('isAgisoAutoDeliverySuccess accepts empty successful payloads and explicit success codes', () => {
assert.equal(isAgisoAutoDeliverySuccess(200, {}), true)
assert.equal(isAgisoAutoDeliverySuccess(200, { IsSuccess: true }), true)
assert.equal(isAgisoAutoDeliverySuccess(200, { Error_Code: 0 }), true)
assert.equal(isAgisoAutoDeliverySuccess(500, { IsSuccess: true }), false)
assert.equal(isAgisoAutoDeliverySuccess(200, { Error_Code: 500 }), false)
})
test('resolveAgisoAutoDeliveryErrorMessage prefers structured payload message before raw text', () => {
assert.equal(
resolveAgisoAutoDeliveryErrorMessage(
{ Error_Msg: '库存不足' },
'raw body',
400,
),
'库存不足',
)
assert.equal(
resolveAgisoAutoDeliveryErrorMessage(
{},
'fallback raw body',
400,
),
'fallback raw body',
)
})