- 公开补资料页 /supplement/:订单号 直接按平台订单号查询,不再依赖链接记录;旧 token 链接一律 404 - 仅「待完善 + 未指派 + 无拼单份额」可提交,提交后状态变为待分配,重复提交返回 409 - 非可编辑工单只返回商品、工单号、状态与客服提示,不返回已填资料和截图 - 管理端新增「重置补资料」:待分配且未指派、无份额、未发布时一键重置回待完善 - 新增 canResetMaterial 能力与 material_reset 流转事件,工单状态文案统一为「待分配」
67 lines
2.5 KiB
TypeScript
67 lines
2.5 KiB
TypeScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
|
|
import {
|
|
buildCollectMaterialLinkUrl,
|
|
isCollectMaterialLinkPath,
|
|
normalizeOrderNoInput,
|
|
resolveCollectMaterialLinkCode,
|
|
} from '../src/utils/collect-link.ts'
|
|
|
|
test('补资料链接:/supplement/<订单号> 命中并解析 code', () => {
|
|
assert.equal(isCollectMaterialLinkPath('/supplement/2630501851236676'), true)
|
|
assert.equal(resolveCollectMaterialLinkCode('/supplement/2630501851236676'), '2630501851236676')
|
|
})
|
|
|
|
test('补资料链接:入口页 /supplement 命中命名空间但没有 code', () => {
|
|
assert.equal(isCollectMaterialLinkPath('/supplement'), true)
|
|
assert.equal(isCollectMaterialLinkPath('/supplement/'), true)
|
|
assert.equal(resolveCollectMaterialLinkCode('/supplement'), '')
|
|
assert.equal(resolveCollectMaterialLinkCode('/supplement/'), '')
|
|
})
|
|
|
|
test('补资料链接:容忍结尾斜杠、查询串与 hash', () => {
|
|
assert.equal(resolveCollectMaterialLinkCode('/supplement/2630501851236676/'), '2630501851236676')
|
|
assert.equal(
|
|
resolveCollectMaterialLinkCode('/supplement/2630501851236676?from=chat'),
|
|
'2630501851236676',
|
|
)
|
|
assert.equal(
|
|
resolveCollectMaterialLinkCode('/supplement/2630501851236676#top'),
|
|
'2630501851236676',
|
|
)
|
|
})
|
|
|
|
test('补资料链接:多段路径不解析 code', () => {
|
|
assert.equal(resolveCollectMaterialLinkCode('/supplement/a/b'), '')
|
|
})
|
|
|
|
test('补资料链接:其它路径不命中', () => {
|
|
for (const pathname of ['/', '/claim/abc', '/collect', '/supplementx/abc', '']) {
|
|
assert.equal(isCollectMaterialLinkPath(pathname), false, pathname)
|
|
assert.equal(resolveCollectMaterialLinkCode(pathname), '', pathname)
|
|
}
|
|
})
|
|
|
|
test('补资料链接:URL 构建去掉 origin 结尾斜杠并编码', () => {
|
|
assert.equal(
|
|
buildCollectMaterialLinkUrl('https://ks.khhao.com/', '2630501851236676'),
|
|
'https://ks.khhao.com/supplement/2630501851236676',
|
|
)
|
|
assert.equal(
|
|
buildCollectMaterialLinkUrl('https://ks.khhao.com', 'abc/def'),
|
|
'https://ks.khhao.com/supplement/abc%2Fdef',
|
|
)
|
|
assert.equal(buildCollectMaterialLinkUrl('', 'abc'), '')
|
|
assert.equal(buildCollectMaterialLinkUrl('https://ks.khhao.com', ''), '')
|
|
})
|
|
|
|
test('补资料入口:输入归一化支持订单号与完整链接', () => {
|
|
assert.equal(normalizeOrderNoInput(' 2630501851236676 '), '2630501851236676')
|
|
assert.equal(
|
|
normalizeOrderNoInput('https://ks.khhao.com/supplement/2630501851236676?from=chat#top'),
|
|
'2630501851236676',
|
|
)
|
|
assert.equal(normalizeOrderNoInput(''), '')
|
|
})
|