Files
bun.sh/test/bun.js/which.test.ts
Colin McDonnell f7f1b60444 Add bun-types, add typechecking, add child_process types (#1475)
* 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>
2022-11-09 15:40:40 -08:00

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");
}