From 83fa25653ad27af74c4a5f820beba91a6c76dd73 Mon Sep 17 00:00:00 2001 From: Matt Mastracci Date: Mon, 13 Nov 2023 11:35:48 -0700 Subject: [PATCH] chore(ext/web): use a non-resource stream for textDecoderStreamCleansUpOnCancel (#21181) Follow-up fix to #21074 --- cli/tests/unit/text_encoding_test.ts | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cli/tests/unit/text_encoding_test.ts b/cli/tests/unit/text_encoding_test.ts index 270fd07a835e69..71fcc1cf04fc33 100644 --- a/cli/tests/unit/text_encoding_test.ts +++ b/cli/tests/unit/text_encoding_test.ts @@ -1,5 +1,10 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. -import { assert, assertEquals, assertThrows } from "./test_util.ts"; +import { + assert, + assertEquals, + assertStrictEquals, + assertThrows, +} from "./test_util.ts"; Deno.test(function btoaSuccess() { const text = "hello world"; @@ -323,9 +328,15 @@ Deno.test(function binaryEncode() { Deno.test( { permissions: { read: true } }, async function textDecoderStreamCleansUpOnCancel() { - const filename = "cli/tests/testdata/assets/hello.txt"; - const file = await Deno.open(filename); - const readable = file.readable.pipeThrough(new TextDecoderStream()); + let cancelled = false; + const readable = new ReadableStream({ + start: (controller) => { + controller.enqueue(new Uint8Array(12)); + }, + cancel: () => { + cancelled = true; + }, + }).pipeThrough(new TextDecoderStream()); const chunks = []; for await (const chunk of readable) { chunks.push(chunk); @@ -334,5 +345,6 @@ Deno.test( } assertEquals(chunks.length, 1); assertEquals(chunks[0].length, 12); + assertStrictEquals(cancelled, true); }, );