后端补充高风险链路测试

This commit is contained in:
yml
2026-05-21 14:10:41 +08:00
parent 84ca9cac09
commit 5711d38c8f
4 changed files with 158 additions and 2 deletions
@@ -4,6 +4,7 @@ import crypto from 'node:crypto'
import { runtimeConfig } from '../../config/runtime.js'
import {
buildWebhookEventInput,
parseAgisoTradeRequest,
resolveAgisoTradeIgnoreReason,
shouldEnrichAgisoXianyuTrade,
@@ -147,3 +148,35 @@ test('verifyAgisoSignatureWithSecret supports documented and legacy signatures',
false,
)
})
test('buildWebhookEventInput preserves raw request payload for later replay', () => {
const input = buildWebhookEventInput(
{
headers: { 'x-request-id': 'req-1' },
query: { timestamp: '1713097840', sign: 'bad-sign' },
body: { json: '{"biz_order_id":"4502259793206016214"}' },
},
{
provider: 'agiso',
platform: 'xianyu',
shopId: 'shop-9',
shopName: '咸鱼店铺',
eventType: 'payment_success',
eventKey: 'agiso:xianyu:4502259793206016214:payment_success',
signatureValid: false,
},
)
assert.equal(input.provider, 'agiso')
assert.equal(input.platform, 'xianyu')
assert.equal(input.eventType, 'payment_success')
assert.equal(input.eventKey, 'agiso:xianyu:4502259793206016214:payment_success')
assert.equal(input.signatureValid, false)
assert.equal(input.processed, false)
assert.equal(input.processError, '')
assert.equal(input.relatedOrderId, null)
assert.deepEqual(JSON.parse(input.headersJson), { 'x-request-id': 'req-1' })
assert.deepEqual(JSON.parse(input.queryJson), { timestamp: '1713097840', sign: 'bad-sign' })
assert.deepEqual(JSON.parse(input.bodyJson), { json: '{"biz_order_id":"4502259793206016214"}' })
assert.match(input.createdAt, /^\d{4}-\d{2}-\d{2}T/)
})