From 5bcd6bb18a897db90ccde0192f75ef3769d5d503 Mon Sep 17 00:00:00 2001 From: snwy Date: Thu, 7 Nov 2024 15:22:36 -0800 Subject: [PATCH] test fix and now it works --- src/bun.js/bindings/ErrorCode.ts | 1 + src/js/internal/streams/readable.js | 1 + .../stream-duplex-readable-writable.test.js | 22 +++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/bun.js/bindings/ErrorCode.ts b/src/bun.js/bindings/ErrorCode.ts index db9af8b4b0..968e234482 100644 --- a/src/bun.js/bindings/ErrorCode.ts +++ b/src/bun.js/bindings/ErrorCode.ts @@ -51,6 +51,7 @@ export default [ ["ERR_MULTIPLE_CALLBACK", Error, "Error"], ["ERR_METHOD_NOT_IMPLEMENTED", Error, "Error"], ["ERR_STREAM_RELEASE_LOCK", Error, "AbortError"], + ["ERR_STREAM_PUSH_AFTER_EOF", Error, "Error"], // Bun-specific ["ERR_FORMDATA_PARSE_ERROR", TypeError, "TypeError"], diff --git a/src/js/internal/streams/readable.js b/src/js/internal/streams/readable.js index f0f3476ee1..307c485ef9 100644 --- a/src/js/internal/streams/readable.js +++ b/src/js/internal/streams/readable.js @@ -476,6 +476,7 @@ function readableAddChunkPushByteMode(stream, state, chunk, encoding) { } if ((state[kState] & kEnded) !== 0) { + errorOrDestroy(stream, $ERR_STREAM_PUSH_AFTER_EOF("Push after end")); return false; } diff --git a/test/js/node/test/parallel/stream-duplex-readable-writable.test.js b/test/js/node/test/parallel/stream-duplex-readable-writable.test.js index c37a46d6dd..8e023cecb9 100644 --- a/test/js/node/test/parallel/stream-duplex-readable-writable.test.js +++ b/test/js/node/test/parallel/stream-duplex-readable-writable.test.js @@ -22,18 +22,16 @@ test("Duplex with readable false", () => { duplex.on("end", endHandler); return new Promise(resolve => { - setImmediate(() => { - expect(errorHandler).toHaveBeenCalledTimes(1); - expect(errorHandler).toHaveBeenCalledWith( - expect.objectContaining({ - code: "ERR_STREAM_PUSH_AFTER_EOF", - message: expect.any(String), - }), - ); - expect(dataHandler).not.toHaveBeenCalled(); - expect(endHandler).not.toHaveBeenCalled(); - resolve(); - }); + expect(errorHandler).toHaveBeenCalledTimes(1); + expect(errorHandler).toHaveBeenCalledWith( + expect.objectContaining({ + code: "ERR_STREAM_PUSH_AFTER_EOF", + message: expect.any(String), + }), + ); + expect(dataHandler).not.toHaveBeenCalled(); + expect(endHandler).not.toHaveBeenCalled(); + resolve(); }); });