summaryrefslogtreecommitdiff
path: root/cli/tests/unit/cache_api_test.ts
diff options
context:
space:
mode:
authorMarcos Casagrande <marcoscvp90@gmail.com>2022-10-03 06:18:59 +0200
committerGitHub <noreply@github.com>2022-10-03 09:48:59 +0530
commite2990be264776d4d17e0fa982f74e1ad54624d0d (patch)
treed26a6d0bbd462c27b94be1da234876ace9044f28 /cli/tests/unit/cache_api_test.ts
parentb3444e0d3b3544816e0286dda3e861fd5debea65 (diff)
fix(ext/cache): close resource on error (#16129)
Diffstat (limited to 'cli/tests/unit/cache_api_test.ts')
-rw-r--r--cli/tests/unit/cache_api_test.ts24
1 files changed, 23 insertions, 1 deletions
diff --git a/cli/tests/unit/cache_api_test.ts b/cli/tests/unit/cache_api_test.ts
index 8b84bfc6d..16996c821 100644
--- a/cli/tests/unit/cache_api_test.ts
+++ b/cli/tests/unit/cache_api_test.ts
@@ -106,7 +106,7 @@ Deno.test(async function cachePutReaderLock() {
response,
);
- assertRejects(
+ await assertRejects(
async () => {
await response.arrayBuffer();
},
@@ -116,3 +116,25 @@ Deno.test(async function cachePutReaderLock() {
await promise;
});
+
+Deno.test(async function cachePutResourceLeak() {
+ const cacheName = "cache-v1";
+ const cache = await caches.open(cacheName);
+
+ const stream = new ReadableStream({
+ start(controller) {
+ controller.error(new Error("leak"));
+ },
+ });
+
+ await assertRejects(
+ async () => {
+ await cache.put(
+ new Request("https://example.com/"),
+ new Response(stream),
+ );
+ },
+ Error,
+ "leak",
+ );
+});