diff options
author | 2022-12-28 11:21:21 +0200 | |
---|---|---|
committer | 2022-12-28 01:21:21 -0800 | |
commit | 092b86321c3210b5435deef1d283648eb8ea5a90 (patch) | |
tree | afe3e9f5642a6942ee7dd3895c22b12d246481cb /test/bun.js/console/console-iterator.test.js | |
parent | da07811427cc10754414c0f1064c4158b8941fa2 (diff) | |
download | bun-092b86321c3210b5435deef1d283648eb8ea5a90.tar.gz bun-092b86321c3210b5435deef1d283648eb8ea5a90.tar.zst bun-092b86321c3210b5435deef1d283648eb8ea5a90.zip |
log object string correctly (#1674)
use `Symbol.toStringTag` of the object or that of its `.prototype`
fixes #1584
Diffstat (limited to 'test/bun.js/console/console-iterator.test.js')
-rw-r--r-- | test/bun.js/console/console-iterator.test.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/test/bun.js/console/console-iterator.test.js b/test/bun.js/console/console-iterator.test.js new file mode 100644 index 000000000..533f084e1 --- /dev/null +++ b/test/bun.js/console/console-iterator.test.js @@ -0,0 +1,65 @@ +import { spawnSync, spawn } from "bun"; +import { describe, expect, it } from "bun:test"; +import { bunExe } from "bunExe"; + +describe("should work for static input", () => { + const inputs = [ + "hello world", + "hello world\n", + "hello world\n\n", + "hello world\n\n\n", + "Hello\nWorld\n", + "1", + "š Red Heart ⨠Sparkles š„ Fire\nš Red Heart ⨠Sparkles\nš Red Heart\nš\n\nnormal", + ]; + + for (let input of inputs) { + it(input.replaceAll("\n", "\\n"), () => { + const { stdout } = spawnSync({ + cmd: [bunExe(), import.meta.dir + "/" + "console-iterator-run.js"], + stdin: Buffer.from(input), + env: { + BUN_DEBUG_QUIET_LOGS: "1", + }, + }); + expect(stdout.toString()).toBe(input.replaceAll("\n", "")); + }); + } +}); + +describe("should work for streaming input", () => { + const inputs = [ + "hello world", + "hello world\n", + "hello world\n\n", + "hello world\n\n\n", + "Hello\nWorld\n", + "1", + "š Red Heart ⨠Sparkles š„ Fire\n š Red Heart ⨠Sparkles\n š Red Heart\n š \n\nnormal", + ]; + + for (let input of inputs) { + it(input.replaceAll("\n", "\\n"), async () => { + const proc = spawn({ + cmd: [bunExe(), import.meta.dir + "/" + "console-iterator-run.js"], + stdin: "pipe", + stdout: "pipe", + env: { + BUN_DEBUG_QUIET_LOGS: "1", + }, + }); + const { stdout, stdin } = proc; + stdin.write(input.slice(0, (input.length / 2) | 0)); + stdin.flush(); + await new Promise((resolve) => setTimeout(resolve, 1)); + stdin.write(input.slice((input.length / 2) | 0)); + stdin.flush(); + stdin.end(); + + expect(await new Response(stdout).text()).toBe( + input.replaceAll("\n", ""), + ); + proc.kill(0); + }); + } +}); |