默认消息模板增加换行-待测试
This commit is contained in:
@@ -49,6 +49,13 @@ export async function ensureAgisoXianyuAutoDeliveryMessageDeliveredForTask({ ord
|
||||
})
|
||||
}
|
||||
|
||||
export function normalizeAgisoMessageTemplate(value) {
|
||||
return String(value || '')
|
||||
.replaceAll('\\r\\n', '\n')
|
||||
.replaceAll('\\n', '\n')
|
||||
.replaceAll('\r\n', '\n')
|
||||
}
|
||||
|
||||
async function deliverAgisoXianyuMessageForTask({
|
||||
order,
|
||||
task,
|
||||
@@ -241,7 +248,8 @@ function generateSign(params, appSecret) {
|
||||
}
|
||||
|
||||
function renderAgisoClaimMessage({ order, task, claimUrl, expiredAt, template, shopName = '' }) {
|
||||
const source = String(template || '').trim() || '您的订单 {platformOrderId} 已创建领取链接,请在 {expiredAt} 前完成领取:{claimUrl}'
|
||||
const source = normalizeAgisoMessageTemplate(String(template || '').trim())
|
||||
|| '您的订单 {platformOrderId} 已创建领取链接,请在 {expiredAt} 前完成领取:{claimUrl}'
|
||||
|
||||
return renderAgisoMessageTemplate({
|
||||
order,
|
||||
@@ -254,7 +262,8 @@ function renderAgisoClaimMessage({ order, task, claimUrl, expiredAt, template, s
|
||||
}
|
||||
|
||||
export function renderAgisoAutoDeliveryMessage({ order, task, template, shopName = '' }) {
|
||||
const source = String(template || '').trim() || '您的订单 {platformOrderId} 已完成自动发货,请注意查收。'
|
||||
const source = normalizeAgisoMessageTemplate(String(template || '').trim())
|
||||
|| '您的订单 {platformOrderId} 已完成自动发货,请注意查收。'
|
||||
|
||||
return renderAgisoMessageTemplate({
|
||||
order,
|
||||
@@ -276,7 +285,7 @@ function renderAgisoMessageTemplate({
|
||||
} = {}) {
|
||||
const resolvedShopName = String(shopName || order?.shop_name || order?.shop_id || '').trim()
|
||||
|
||||
return String(template || '')
|
||||
return normalizeAgisoMessageTemplate(template)
|
||||
.replaceAll('{platformOrderId}', String(order?.platform_order_id || ''))
|
||||
.replaceAll('{taskNo}', String(task?.task_no || ''))
|
||||
.replaceAll('{shopName}', resolvedShopName)
|
||||
|
||||
@@ -2,7 +2,11 @@ import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
|
||||
import { runtimeConfig } from '../../../../config/runtime.js'
|
||||
import { deliverAgisoXianyuMessageForTaskWithDeps } from './message-service.js'
|
||||
import {
|
||||
deliverAgisoXianyuMessageForTaskWithDeps,
|
||||
normalizeAgisoMessageTemplate,
|
||||
renderAgisoAutoDeliveryMessage,
|
||||
} from './message-service.js'
|
||||
|
||||
test('deliverAgisoXianyuMessageForTaskWithDeps skips duplicate successful claim message by order scope', async () => {
|
||||
const originalMessaging = runtimeConfig.platforms.agiso.messaging
|
||||
@@ -74,3 +78,26 @@ test('deliverAgisoXianyuMessageForTaskWithDeps skips duplicate successful claim
|
||||
runtimeConfig.platforms.agiso.appSecret = originalAppSecret
|
||||
}
|
||||
})
|
||||
|
||||
test('normalizeAgisoMessageTemplate converts escaped newline sequences into real line breaks', () => {
|
||||
assert.equal(
|
||||
normalizeAgisoMessageTemplate('第一行\\n第二行\\r\\n第三行'),
|
||||
'第一行\n第二行\n第三行',
|
||||
)
|
||||
})
|
||||
|
||||
test('renderAgisoAutoDeliveryMessage supports escaped newlines in configured template', () => {
|
||||
const message = renderAgisoAutoDeliveryMessage({
|
||||
order: {
|
||||
platform_order_id: '4502280133178028841',
|
||||
shop_id: '2209880145223',
|
||||
shop_name: '大锤号商',
|
||||
},
|
||||
task: {
|
||||
task_no: 'DT7af76e9b2438',
|
||||
},
|
||||
template: '订单 {platformOrderId}\\n结果:{resultMessage}',
|
||||
})
|
||||
|
||||
assert.equal(message, '订单 4502280133178028841\n结果:自动发货成功')
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user