mirror of
https://github.com/oven-sh/bun
synced 2026-02-11 03:18:53 +00:00
* Add bun-types to packages * Improve typing * Fix types in tests * Fix dts tests * Run formatter * Fix all type errors * Add strict mode, fix type errors * Add ffi changes * Move workflows to root * Add workflows * Remove labeler * Add child_process types * Fix synthetic defaults issue * Remove docs * Move scripts * Run prettier * Include examples in typechecking * captureStackTrace types * moved captureStackTrace types to globals * Address reviews Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu> Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
53 lines
1.0 KiB
TypeScript
53 lines
1.0 KiB
TypeScript
import { test, expect } from "bun:test";
|
|
|
|
import { which } from "bun";
|
|
|
|
test("which", () => {
|
|
writeFixture("/tmp/myscript.sh");
|
|
|
|
// Our cwd is not /tmp
|
|
expect(which("myscript.sh")).toBe(null);
|
|
|
|
// "bun" is in our PATH
|
|
expect(which("bun")?.length > 0).toBe(true);
|
|
|
|
expect(
|
|
// You can override PATH
|
|
which("myscript.sh", {
|
|
PATH: "/tmp",
|
|
}),
|
|
).toBe("/tmp/myscript.sh");
|
|
|
|
expect(
|
|
which("myscript.sh", {
|
|
PATH: "/not-tmp",
|
|
}),
|
|
).toBe(null);
|
|
|
|
expect(
|
|
// PATH works like the $PATH environment variable, respecting colons
|
|
which("myscript.sh", {
|
|
PATH: "/not-tmp:/tmp",
|
|
}),
|
|
).toBe("/tmp/myscript.sh");
|
|
|
|
expect(
|
|
// cwd is checked first
|
|
which("myscript.sh", {
|
|
cwd: "/tmp",
|
|
}),
|
|
).toBe("/tmp/myscript.sh");
|
|
});
|
|
|
|
function writeFixture(path) {
|
|
var fs = require("fs");
|
|
try {
|
|
fs.unlinkSync(path);
|
|
} catch (e) {}
|
|
|
|
var script_name = path;
|
|
var script_content = "echo Hello world!";
|
|
fs.writeFileSync(script_name, script_content);
|
|
fs.chmodSync(script_name, "755");
|
|
}
|