refactor(release-cleanup): 將清理邏輯由 bash 改寫為 Node.js #6

Closed
jiantw83 wants to merge 60 commits from refactor/nodejs-rewrite-20260626-103443 into develop
Showing only changes of commit 858e628db6 - Show all commits
+15
View File
@@ -27,6 +27,21 @@ test('selectReleasesToDelete 在 keepCount 為 0 時刪除全部(由新到舊)',
) )
}) })
test('selectReleasesToDelete 在 created_at 相同時以 id 決定順序(具決定性)', () => {
Ghost marked this conversation as resolved Outdated
Outdated
Review

嚴重等級🔵 建議
審查員:Maya
問題:selectReleasesToDelete 尚未明確測試傳入空陣列 [] 時的行為。
建議:增加測試案例:assert.deepEqual(selectReleasesToDelete([], 1), []),驗證穩健性。

**嚴重等級**:🔵 建議 **審查員**:Maya **問題**:selectReleasesToDelete 尚未明確測試傳入空陣列 [] 時的行為。 **建議**:增加測試案例:assert.deepEqual(selectReleasesToDelete([], 1), []),驗證穩健性。
const same = '2024-01-01T00:00:00Z'
const list = [
{ id: 1, created_at: same },
{ id: 3, created_at: same },
{ id: 2, created_at: same },
]
const toDelete = selectReleasesToDelete(list, 1)
// 保留 id 最大者(3),刪除 id 2 與 1(順序固定)
assert.deepEqual(
toDelete.map((r) => r.id),
[2, 1],
)
})
test('selectReleasesToDelete 不改動原陣列', () => { test('selectReleasesToDelete 不改動原陣列', () => {
const original = [...releases] const original = [...releases]
selectReleasesToDelete(releases, 1) selectReleasesToDelete(releases, 1)