test(tags): 驗證 categorizeTags 對 null/非字串 name 不拋例外

新增測試:含 null、name 為數字、缺 name 的項目皆歸為 skip,正常 name 維持 keep。測試共 65 項全數通過。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jeffery
2026-06-26 14:09:40 +08:00
co-authored by Claude Opus 4.8
parent 8b92e9739c
commit 50b626cf87
+12
View File
@@ -30,6 +30,18 @@ test('categorizeTags 將無名稱的 tag 標記為略過', () => {
assert.equal(empty.action, 'skip')
})
test('categorizeTags 對 null/非字串 name 的項目標記為略過(不拋例外)', () => {
const odd = [null, { name: 123 }, {}, { name: 'v1' }]
let result
assert.doesNotThrow(() => {
result = categorizeTags(odd, ['v1'])
})
assert.deepEqual(
result.map((r) => r.action),
['skip', 'skip', 'skip', 'keep'],
)
})
test('categorizeTags 在沒有任何 release 指定時刪除所有具名 tag', () => {
const result = categorizeTags(tags, [])
const deletes = result.filter(({ action }) => action === 'delete')