mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
52 lines
1.7 KiB
TypeScript
52 lines
1.7 KiB
TypeScript
import { describe } from "bun:test";
|
|
import { createTestBuilder } from "../test_builder";
|
|
const TestBuilder = createTestBuilder(import.meta.path);
|
|
|
|
describe("dirname", async () => {
|
|
TestBuilder.command`dirname`.exitCode(1).stdout("").stderr("usage: dirname string\n").runAsTest("shows usage");
|
|
|
|
TestBuilder.command`dirname js/bun/shell/commands/dirname.test.ts`
|
|
.exitCode(0)
|
|
.stdout("js/bun/shell/commands\n")
|
|
.stderr("")
|
|
.runAsTest("works relative");
|
|
|
|
TestBuilder.command`dirname /home/tux/example.txt`
|
|
.exitCode(0)
|
|
.stdout("/home/tux\n")
|
|
.stderr("")
|
|
.runAsTest("works absolute");
|
|
|
|
TestBuilder.command`dirname /usr/share/aclocal/pkg.m4 /var/log/bar/file.txt`
|
|
.exitCode(0)
|
|
.stdout("/usr/share/aclocal\n/var/log/bar\n")
|
|
.stderr("")
|
|
.runAsTest("works multiple");
|
|
|
|
TestBuilder.command`dirname C:/Documents/Newsletters/Summer2018.pdf`
|
|
.exitCode(0)
|
|
.stdout("C:/Documents/Newsletters\n")
|
|
.stderr("")
|
|
.runAsTest("works windows");
|
|
|
|
TestBuilder.command`dirname /catalog/`.exitCode(0).stdout("/\n").stderr("").runAsTest("leading slash");
|
|
|
|
TestBuilder.command`dirname /catalog`.exitCode(0).stdout("/\n").stderr("").runAsTest("at root");
|
|
|
|
TestBuilder.command`dirname /`.exitCode(0).stdout("/\n").stderr("").runAsTest("root is idempotent");
|
|
});
|
|
|
|
describe("dirname without stdout", async () => {
|
|
TestBuilder.command`echo $(dirname js/bun/shell/commands/dirname.test.ts)`
|
|
.exitCode(0)
|
|
.stdout("js/bun/shell/commands\n")
|
|
.stderr("")
|
|
.runAsTest("works relative without stdout");
|
|
|
|
TestBuilder.command`echo $(dirname /home/tux/example.txt)`
|
|
.exitCode(0)
|
|
.stdout("/home/tux\n")
|
|
.stderr("")
|
|
.runAsTest("works absolute without stdout");
|
|
});
|