feat(work-order): 新增一次性补资料链接

This commit is contained in:
2026-11-01 10:46:31 +08:00
parent fba0a13d44
commit 15956e704f
26 changed files with 1768 additions and 4 deletions
+32
View File
@@ -0,0 +1,32 @@
import assert from 'node:assert/strict'
import test from 'node:test'
import {
isCollectMaterialLinkPath,
resolveCollectMaterialLinkToken,
} from '../src/utils/collect-link.ts'
test('补资料链接:/supplement/<token> 命中并解析 token', () => {
assert.equal(isCollectMaterialLinkPath('/supplement/abc123'), true)
assert.equal(resolveCollectMaterialLinkToken('/supplement/abc123'), 'abc123')
})
test('补资料链接:容忍结尾斜杠、查询串与 hash', () => {
assert.equal(resolveCollectMaterialLinkToken('/supplement/abc123/'), 'abc123')
assert.equal(resolveCollectMaterialLinkToken('/supplement/abc123?from=chat'), 'abc123')
assert.equal(resolveCollectMaterialLinkToken('/supplement/abc123#top'), 'abc123')
})
test('补资料链接:命名空间命中但缺少 token 时返回空串', () => {
assert.equal(isCollectMaterialLinkPath('/supplement'), true)
assert.equal(isCollectMaterialLinkPath('/supplement/'), true)
assert.equal(resolveCollectMaterialLinkToken('/supplement'), '')
assert.equal(resolveCollectMaterialLinkToken('/supplement/a/b'), '')
})
test('补资料链接:其它路径不命中', () => {
for (const pathname of ['/', '/claim/abc', '/collect', '/supplementx/abc', '']) {
assert.equal(isCollectMaterialLinkPath(pathname), false, pathname)
assert.equal(resolveCollectMaterialLinkToken(pathname), '', pathname)
}
})