diff options
Diffstat (limited to 'cli/tests/unit/cache_api_test.ts')
-rw-r--r-- | cli/tests/unit/cache_api_test.ts | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/cli/tests/unit/cache_api_test.ts b/cli/tests/unit/cache_api_test.ts index 16996c821..7bc372003 100644 --- a/cli/tests/unit/cache_api_test.ts +++ b/cli/tests/unit/cache_api_test.ts @@ -130,7 +130,7 @@ Deno.test(async function cachePutResourceLeak() { await assertRejects( async () => { await cache.put( - new Request("https://example.com/"), + new Request("https://example.com/leak"), new Response(stream), ); }, @@ -138,3 +138,30 @@ Deno.test(async function cachePutResourceLeak() { "leak", ); }); + +Deno.test(async function cachePutFailedBody() { + const cacheName = "cache-v1"; + const cache = await caches.open(cacheName); + + const request = new Request("https://example.com/failed-body"); + const stream = new ReadableStream({ + start(controller) { + controller.error(new Error("corrupt")); + }, + }); + + await assertRejects( + async () => { + await cache.put( + request, + new Response(stream), + ); + }, + Error, + "corrupt", + ); + + const response = await cache.match(request); + // if it fails to read the body, the cache should be empty + assertEquals(response, undefined); +}); |