refactor(release-cleanup): 將清理邏輯由 bash 改寫為 Node.js #5
@@ -27,6 +27,21 @@ test('selectReleasesToDelete 在 keepCount 為 0 時刪除全部(由新到舊)',
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('selectReleasesToDelete 在 created_at 相同時以 id 決定順序(具決定性)', () => {
|
||||||
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user