后端补充高风险链路测试
This commit is contained in:
@@ -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/)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user