fix(node): don't close stdio streams (#19256)

Closes https://github.com/denoland/deno/issues/19255

---------

Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
This commit is contained in:
Bartek Iwańczuk 2023-06-02 07:36:51 +02:00 committed by GitHub
parent 11791ee260
commit c908088a03
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 0 deletions

View file

@ -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");
},
});