Files
order_site/apps/frontend/tests/product-name-source-suffix.test.ts
T
zhaoxing 13869d345f feat(worker-platform): 商品名按来源追加可配置后缀
- 新增来源后缀配置(来源下拉、启停、备注,同一时间仅启用一个)
- 管理端列表/详情与打手端列表/详情/大厅展示「商品名(后缀)」
- 打手端 DTO 透出 sourceProvider,仅展示,不改写商品名
- 新增来源选项接口与前后端单测
2026-11-02 14:25:53 +08:00

93 lines
3.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import assert from 'node:assert/strict'
import test from 'node:test'
import {
appendProductNameSourceSuffix,
applyProductNameSourceSuffix,
normalizeProductNameSuffixText,
resolveProductNameSourceSuffix,
} from '../src/utils/product-name-source-suffix.ts'
const items = [
{ source: '91kaquan', suffix: '91卡券' },
{ source: 'douyin', suffix: '抖音' },
]
test('来源后缀:空配置不追加', () => {
assert.equal(applyProductNameSourceSuffix('苏尔南手枪', '91kaquan', []), '苏尔南手枪')
assert.equal(applyProductNameSourceSuffix('苏尔南手枪', '91kaquan', null), '苏尔南手枪')
})
test('来源后缀:精确匹配后追加全角括号后缀', () => {
assert.equal(
applyProductNameSourceSuffix('苏尔南手枪', '91kaquan', items),
'苏尔南手枪(91卡券)',
)
})
test('来源后缀:来源匹配不区分大小写并去除首尾空格', () => {
assert.equal(resolveProductNameSourceSuffix(items, ' 91KAQUAN '), '91卡券')
assert.equal(
applyProductNameSourceSuffix('苏尔南手枪', ' 91Kaquan ', items),
'苏尔南手枪(91卡券)',
)
})
test('来源后缀:没有匹配来源时不追加', () => {
assert.equal(applyProductNameSourceSuffix('苏尔南手枪', 'kuaishou', items), '苏尔南手枪')
assert.equal(applyProductNameSourceSuffix('苏尔南手枪', '', items), '苏尔南手枪')
})
test('来源后缀:商品名已带相同后缀时不重复追加', () => {
assert.equal(
appendProductNameSourceSuffix('苏尔南手枪(91卡券)', '91卡券'),
'苏尔南手枪(91卡券)',
)
assert.equal(appendProductNameSourceSuffix('苏尔南手枪(91卡券)', '91卡券'), '苏尔南手枪(91卡券)')
})
test('来源后缀:后缀为空或商品名为空时不做处理', () => {
assert.equal(appendProductNameSourceSuffix('苏尔南手枪', ''), '苏尔南手枪')
assert.equal(appendProductNameSourceSuffix('', '91卡券'), '')
assert.equal(applyProductNameSourceSuffix('', '91kaquan', items), '')
})
test('来源后缀:配置里的外层括号会被剥离后再拼接', () => {
assert.equal(normalizeProductNameSuffixText('(91卡券)'), '91卡券')
assert.equal(normalizeProductNameSuffixText('(91卡券)'), '91卡券')
assert.equal(
applyProductNameSourceSuffix('苏尔南手枪', '91kaquan', [
{ source: '91kaquan', suffix: '(91卡券)' },
]),
'苏尔南手枪(91卡券)',
)
})
test('来源后缀:停用的配置不参与展示,启用后才追加', () => {
assert.equal(
applyProductNameSourceSuffix('苏尔南手枪', '91kaquan', [
{ source: '91kaquan', suffix: '91卡券', enabled: false },
]),
'苏尔南手枪',
)
assert.equal(
applyProductNameSourceSuffix('苏尔南手枪', '91kaquan', [
{ source: '91kaquan', suffix: '91卡券', enabled: true },
]),
'苏尔南手枪(91卡券)',
)
})
test('来源后缀:同一来源多条配置时取第一条有效后缀', () => {
assert.equal(
resolveProductNameSourceSuffix(
[
{ source: '91kaquan', suffix: '第一' },
{ source: '91kaquan', suffix: '第二' },
],
'91kaquan',
),
'第一',
)
})