test(calculate-version): 補回應片段截斷行為測試

新增超長無法解析回應的測試,斷言錯誤訊息中的片段截斷至 200 字元內。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jeffery
2026-06-26 14:14:30 +08:00
co-authored by Claude Opus 4.8
parent 4aa1393af2
commit a18802d465
+18
View File
@@ -77,6 +77,24 @@ test('fetchReleases 對無法解析的 JSON 回應拋錯', async () => {
); );
}); });
test('fetchReleases 解析失敗時截斷過長的回應片段', async () => {
const huge = `{${'x'.repeat(5000)}`;
await withFetch(
async () => jsonResponse(huge, true),
async () => {
await assert.rejects(
() => fetchReleases('https://gitea.example.com/api'),
(err) => {
const match = err.message.match(/片段:「([\s\S]*)」$/);
assert.ok(match, '錯誤訊息應包含回應內容片段');
assert.ok(Array.from(match[1]).length <= 200, '片段應截斷至 200 字元內');
return true;
},
);
},
);
});
test('fetchReleases 對非陣列回應拋錯', async () => { test('fetchReleases 對非陣列回應拋錯', async () => {
await withFetch( await withFetch(
async () => jsonResponse({ message: 'oops' }), async () => jsonResponse({ message: 'oops' }),