diff --git a/web/src/lib/player/events.svelte.test.ts b/web/src/lib/player/events.svelte.test.ts index 4d3eca99..4b7cc75f 100644 --- a/web/src/lib/player/events.svelte.test.ts +++ b/web/src/lib/player/events.svelte.test.ts @@ -179,8 +179,14 @@ describe('useEventsDispatcher', () => { expect(beacon).toHaveBeenCalled(); expect(beacon.mock.calls[0][0]).toBe('/api/events'); + // jsdom's Blob doesn't ship .text(); FileReader does. const blob = beacon.mock.calls[0][1] as Blob; - const text = await blob.text(); + const text = await new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onloadend = () => resolve(reader.result as string); + reader.onerror = () => reject(reader.error); + reader.readAsText(blob); + }); const payload = JSON.parse(text) as { type: string; duration_played_ms: number }; expect(payload.type).toBe('play_ended'); expect(payload.duration_played_ms).toBe(73000);