diff --git a/app/test/gitea-client.test.js b/app/test/gitea-client.test.js index 460391f..e971498 100644 --- a/app/test/gitea-client.test.js +++ b/app/test/gitea-client.test.js @@ -112,6 +112,17 @@ test('fetchAllPages 在 fetch 因逾時拋出 AbortError 時向外拋出', async ) }) +test('fetchAllPages 在 fetch 拋出一般網路錯誤時向外拋出', async () => { + globalThis.fetch = async () => { + throw new TypeError('fetch failed: ECONNREFUSED') + } + const client = new GiteaClient({}) + await assert.rejects( + () => client.fetchAllPages('https://example.com/api'), + /fetch failed|ECONNREFUSED/, + ) +}) + test('fetchAllPages 在頁數超過 MAX_PAGES 時中止以避免無限迴圈', async () => { // 永遠回傳非空陣列,模擬 API 不以空陣列結尾的異常情形 globalThis.fetch = async () => jsonResponse([{ id: 1 }]) diff --git a/app/test/releases.test.js b/app/test/releases.test.js index 06690d6..b33daeb 100644 --- a/app/test/releases.test.js +++ b/app/test/releases.test.js @@ -19,6 +19,11 @@ test('selectReleasesToDelete 在數量不超過保留數時回傳空陣列', () assert.deepEqual(selectReleasesToDelete(releases, 5), []) }) +test('selectReleasesToDelete 對空陣列回傳空陣列', () => { + assert.deepEqual(selectReleasesToDelete([], 1), []) + assert.deepEqual(selectReleasesToDelete([], 0), []) +}) + test('selectReleasesToDelete 在 keepCount 為 0 時刪除全部(由新到舊)', () => { const toDelete = selectReleasesToDelete(releases, 0) assert.deepEqual(