From cd72100e90ddbb9b1fd0bb2becace0ccbe19be53 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Fri, 8 Mar 2024 04:31:36 -0800 Subject: [PATCH] Clearer error handling for this test --- test/js/web/console/console-log.test.ts | 29 ++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/test/js/web/console/console-log.test.ts b/test/js/web/console/console-log.test.ts index 8867fc6d01..95e27c0521 100644 --- a/test/js/web/console/console-log.test.ts +++ b/test/js/web/console/console-log.test.ts @@ -5,14 +5,33 @@ import { join } from "node:path"; it("should log to console correctly", async () => { const { stdout, stderr, exited } = spawn({ cmd: [bunExe(), join(import.meta.dir, "console-log.js")], - stdin: null, + stdin: "inherit", stdout: "pipe", stderr: "pipe", env: bunEnv, }); - expect(await exited).toBe(0); - expect((await new Response(stderr).text()).replaceAll("\r\n", "\n")).toBe("uh oh\n"); - expect((await new Response(stdout).text()).replaceAll("\r\n", "\n")).toBe( - (await new Response(file(join(import.meta.dir, "console-log.expected.txt"))).text()).replaceAll("\r\n", "\n"), + const exitCode = await exited; + const err = (await new Response(stderr).text()).replaceAll("\r\n", "\n"); + const out = (await new Response(stdout).text()).replaceAll("\r\n", "\n"); + const expected = (await new Response(file(join(import.meta.dir, "console-log.expected.txt"))).text()).replaceAll( + "\r\n", + "\n", ); + + const errMatch = err === "uh oh\n"; + const outmatch = out === expected; + + if (errMatch && outmatch && exitCode === 0) { + expect().pass(); + return; + } + + console.error(err); + console.log("Length of output:", out.length); + console.log("Length of expected:", expected.length); + console.log("Exit code:", exitCode); + + expect(out).toBe(expected); + expect(err).toBe("uh oh\n"); + expect(exitCode).toBe(0); });