mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { bunEnv } from "harness";
|
|
import { bunExe, createTestBuilder } from "./test_builder";
|
|
const TestBuilder = createTestBuilder(import.meta.path);
|
|
|
|
test("default throw on command failure", async () => {
|
|
// Run in a subproc because other tests may change the value of $.throws
|
|
const code = /* ts */ `
|
|
import { $ } from "bun";
|
|
import { afterAll, beforeAll, describe, expect, test } from "bun:test";
|
|
test('test', async () => {
|
|
try {
|
|
await $\`echo hi; ls oogabooga\`.quiet();
|
|
expect.unreachable();
|
|
} catch (e: any) {
|
|
expect(e).toBeInstanceOf(Error);
|
|
expect(e.exitCode).toBe(1);
|
|
expect(e.message).toBe("Failed with exit code 1");
|
|
expect(e.stdout.toString("utf-8")).toBe("hi\\n");
|
|
expect(e.stderr.toString("utf-8")).toBe("ls: oogabooga: No such file or directory\\n");
|
|
}
|
|
})
|
|
`;
|
|
|
|
await TestBuilder.command`echo ${code} > index.test.ts; ${bunExe()} test index.test.ts`
|
|
.ensureTempDir()
|
|
.stdout(`bun test ${Bun.version_with_sha}\n`)
|
|
.stderr(s => s.includes("1 pass"))
|
|
.env(bunEnv)
|
|
.run();
|
|
});
|
|
|
|
test("ShellError has .text()", async () => {
|
|
// Run in a subproc because other tests may change the value of $.throws
|
|
const code = /* ts */ `
|
|
import { $ } from "bun";
|
|
import { afterAll, beforeAll, describe, expect, test } from "bun:test";
|
|
test('test', async () => {
|
|
try {
|
|
await $\`ls oogabooga\`.quiet();
|
|
expect.unreachable();
|
|
} catch (e: any) {
|
|
expect(e).toBeInstanceOf(Error);
|
|
expect(e.exitCode).toBe(1);
|
|
expect(e.stderr.toString("utf-8")).toBe("ls: oogabooga: No such file or directory\\n");
|
|
}
|
|
})
|
|
`;
|
|
|
|
await TestBuilder.command`echo ${code} > index.test.ts; ${bunExe()} test index.test.ts`
|
|
.ensureTempDir()
|
|
.stdout(`bun test ${Bun.version_with_sha}\n`)
|
|
.stderr(s => s.includes("1 pass"))
|
|
.env(bunEnv)
|
|
.run();
|
|
});
|