From c064ecb548ffb74fe135b0430f2a22afc245a7d9 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 03:49:59 +0000 Subject: [PATCH] fix: improve LinkPreviewService test isolation and mock cleanup Co-authored-by: PR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> --- tests/services/link-preview-service.test.mjs | 25 +++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tests/services/link-preview-service.test.mjs b/tests/services/link-preview-service.test.mjs index 4783d20e..a11a180c 100644 --- a/tests/services/link-preview-service.test.mjs +++ b/tests/services/link-preview-service.test.mjs @@ -15,12 +15,27 @@ globalThis.URL = URL; test("LinkPreviewService", async (t) => { const originalFetch = globalThis.fetch; + let service; - t.afterEach(() => { - globalThis.fetch = originalFetch; + t.beforeEach(() => { + service = new LinkPreviewService({ ttlMs: 1000 }); }); - const service = new LinkPreviewService({ ttlMs: 1000 }); + t.afterEach(async () => { + globalThis.fetch = originalFetch; + if (service && service.db) { + service.db.close(); + } + await new Promise((resolve, reject) => { + const request = indexedDB.deleteDatabase("bitvid-link-previews"); + request.onsuccess = () => resolve(); + request.onerror = () => reject(request.error); + request.onblocked = () => { + // Log warning if blocked, though strictly closing connections should prevent this + console.warn("[LinkPreviewService Test] Database deletion blocked"); + }; + }); + }); await t.test("initializes IndexedDB", async () => { const db = await service.init(); @@ -83,6 +98,10 @@ test("LinkPreviewService", async (t) => { const cached = await expiredService.getCachedPreview("https://expired.com"); assert.equal(cached, null); + + if (expiredService.db) { + expiredService.db.close(); + } }); await t.test("deletePreview removes from cache", async () => {