From c908088a039b8e1232941850c75471bab162313a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 2 Jun 2023 07:36:51 +0200 Subject: fix(node): don't close stdio streams (#19256) Closes https://github.com/denoland/deno/issues/19255 --------- Co-authored-by: Yoshiya Hinosawa --- cli/tests/unit_node/process_test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'cli') diff --git a/cli/tests/unit_node/process_test.ts b/cli/tests/unit_node/process_test.ts index 49b753db3..7e927a8ad 100644 --- a/cli/tests/unit_node/process_test.ts +++ b/cli/tests/unit_node/process_test.ts @@ -2,6 +2,8 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. import process, { argv, env } from "node:process"; +import { Readable } from "node:stream"; +import { once } from "node:events"; import { assert, assertEquals, @@ -746,3 +748,19 @@ Deno.test({ assertEquals(stripColor(decoder.decode(stdout).trim()), "really exited"); }, }); + +Deno.test({ + name: "process.stdout isn't closed when source stream ended", + async fn() { + const source = Readable.from(["foo", "bar"]); + + source.pipe(process.stdout); + await once(source, "end"); + + // Wait a bit to ensure that streaming is completely finished. + await delay(10); + + // This checks if the rid 1 is still valid. + assert(typeof process.stdout.isTTY === "boolean"); + }, +}); -- cgit v1.2.3