aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js
diff options
context:
space:
mode:
authorGravatar Alex Lam S.L <alexlamsl@gmail.com> 2023-01-30 10:33:13 +0200
committerGravatar GitHub <noreply@github.com> 2023-01-30 00:33:13 -0800
commit5c30983d5dd1fcf6c256feec119ed136b5dd408a (patch)
treeb09bb50d056f199ecdb76e385eb019646f99b127 /test/bun.js
parentc9ca729493298a11ef45b4d2b99f644e209aa518 (diff)
downloadbun-5c30983d5dd1fcf6c256feec119ed136b5dd408a.tar.gz
bun-5c30983d5dd1fcf6c256feec119ed136b5dd408a.tar.zst
bun-5c30983d5dd1fcf6c256feec119ed136b5dd408a.zip
[bunx] fix version parsing (#1937)
Diffstat (limited to 'test/bun.js')
-rw-r--r--test/bun.js/install/bunx.test.ts64
1 files changed, 64 insertions, 0 deletions
diff --git a/test/bun.js/install/bunx.test.ts b/test/bun.js/install/bunx.test.ts
new file mode 100644
index 000000000..95fe3b2b9
--- /dev/null
+++ b/test/bun.js/install/bunx.test.ts
@@ -0,0 +1,64 @@
+import { spawn } from "bun";
+import {
+ afterEach,
+ beforeEach,
+ expect,
+ it,
+} from "bun:test";
+import { bunExe } from "bunExe";
+import { bunEnv as env } from "bunEnv";
+import { realpathSync } from "fs";
+import { mkdtemp, rm } from "fs/promises";
+import { tmpdir } from "os";
+import { join } from "path";
+
+let x_dir;
+
+beforeEach(async () => {
+ x_dir = realpathSync(await mkdtemp(join(tmpdir(), "bun-install.test")));
+});
+afterEach(async () => {
+ await rm(x_dir, { force: true, recursive: true });
+});
+
+it("should install and run default (latest) version", async () => {
+ const { stdout, stderr, exited } = spawn({
+ cmd: [bunExe(), "x", "uglify-js", "--compress"],
+ cwd: x_dir,
+ stdout: null,
+ stdin: new TextEncoder().encode("console.log(6 * 7);"),
+ stderr: "pipe",
+ env,
+ });
+ expect(stderr).toBeDefined();
+ const err = await new Response(stderr).text();
+ expect(err).not.toContain("error");
+ expect(stdout).toBeDefined();
+ const out = await new Response(stdout).text();
+ expect(out.split(/\r?\n/)).toEqual([
+ "console.log(42);",
+ "",
+ ]);
+ expect(await exited).toBe(0);
+});
+
+it("should install and run specified version", async () => {
+ const { stdout, stderr, exited } = spawn({
+ cmd: [bunExe(), "x", "uglify-js@3.14.1", "-v"],
+ cwd: x_dir,
+ stdout: null,
+ stdin: "pipe",
+ stderr: "pipe",
+ env,
+ });
+ expect(stderr).toBeDefined();
+ const err = await new Response(stderr).text();
+ expect(err).not.toContain("error");
+ expect(stdout).toBeDefined();
+ const out = await new Response(stdout).text();
+ expect(out.split(/\r?\n/)).toEqual([
+ "uglify-js 3.14.1",
+ "",
+ ]);
+ expect(await exited).toBe(0);
+});