From a55b194638bcaace38917703b7d9233fb1989d44 Mon Sep 17 00:00:00 2001 From: Marcos Casagrande Date: Sun, 2 Oct 2022 01:21:48 +0200 Subject: fix(ext/cache): acquire reader lock before async op (#16126) --- cli/tests/unit/cache_api_test.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'cli/tests/unit/cache_api_test.ts') diff --git a/cli/tests/unit/cache_api_test.ts b/cli/tests/unit/cache_api_test.ts index 4d7c6511b..8b84bfc6d 100644 --- a/cli/tests/unit/cache_api_test.ts +++ b/cli/tests/unit/cache_api_test.ts @@ -94,3 +94,25 @@ Deno.test(async function cacheApi() { assert(await caches.delete(cacheName)); assertFalse(await caches.has(cacheName)); }); + +Deno.test(async function cachePutReaderLock() { + const cacheName = "cache-v1"; + const cache = await caches.open(cacheName); + + const response = new Response("consumed"); + + const promise = cache.put( + new Request("https://example.com/"), + response, + ); + + assertRejects( + async () => { + await response.arrayBuffer(); + }, + TypeError, + "Body already consumed.", + ); + + await promise; +}); -- cgit v1.2.3