mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
// https://github.com/oven-sh/bun/issues/12360
|
|
import { fileURLToPath, pathToFileURL } from "bun";
|
|
import { expect, test } from "bun:test";
|
|
import { isWindows, tmpdirSync } from "harness";
|
|
import { join } from "path";
|
|
|
|
export async function validatePath(path: URL): Promise<URL | string> {
|
|
const filePath = fileURLToPath(path);
|
|
|
|
if (await Bun.file(filePath).exists()) {
|
|
return pathToFileURL(filePath);
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
test("validate executable given in the config using `validatePath`: invalid value", async () => {
|
|
const dir = tmpdirSync();
|
|
|
|
const filePath = join(dir, "./sample.exe");
|
|
|
|
const newFilePath = await validatePath(pathToFileURL(filePath));
|
|
|
|
expect(newFilePath).toBe("");
|
|
});
|
|
|
|
test("validate executable given in the config using `validatePath`: expected real implementation", async () => {
|
|
const dir = tmpdirSync();
|
|
const editorPath: URL | string = pathToFileURL(join(dir, "./metaeditor64.exe"));
|
|
const terminalPath: URL | string = pathToFileURL(join(dir, "./terminal64.exe"));
|
|
|
|
await Bun.write(isWindows ? editorPath.pathname.slice(1) : editorPath.pathname, "im a editor");
|
|
await Bun.write(isWindows ? terminalPath.pathname.slice(1) : terminalPath.pathname, "im a terminal");
|
|
|
|
const newEditorPath = <URL>await validatePath(editorPath);
|
|
const newTerminalPath = <URL>await validatePath(terminalPath);
|
|
|
|
expect(newEditorPath.pathname).toBe(editorPath.pathname);
|
|
expect(newTerminalPath.pathname).toBe(terminalPath.pathname);
|
|
});
|