import { assert, it } from "@effect/vitest"; import { isWindowsBatchShim, isWindowsCommandNotFound, makeWindowsCmdCommandLine, makeWindowsCmdSpawnArguments, quoteForWindowsCmd, resolveWindowsCommandShell,} from "./windowsCommand"; it("resolves cmd.exe from Windows command shell environment variables", () => { assert.equal(resolveWindowsCommandShell({}), "cmd.exe"); assert.equal( resolveWindowsCommandShell({ COMSPEC: "C:\\Windows\\System32\\cmd.exe" }), "C:\\Windows\\System32\\cmd.exe", ); assert.equal( resolveWindowsCommandShell({ ComSpec: "C:\\custom\\cmd.exe" }), "C:\\custom\\cmd.exe", );}); it("detects Windows batch shims case-insensitively", () => { assert.equal(isWindowsBatchShim("code.cmd"), true); assert.equal(isWindowsBatchShim("C:\\tools\\launcher.BAT"), true); assert.equal(isWindowsBatchShim("/tmp/code.exe"), false);}); it("detects Windows command-not-found exits", () => { assert.equal(isWindowsCommandNotFound(9009, "", "win32"), true); assert.equal( isWindowsCommandNotFound( 1, "'foo' is not recognized as an internal or external command", "win32", ), true, ); assert.equal(isWindowsCommandNotFound(9009, "", "darwin"), false);}); it("quotes Windows cmd values safely", () => { assert.equal( quoteForWindowsCmd('C:\\work\\100% real\\"quoted".ts:12:4'), '"C:\\work\\100%% real\\""quoted"".ts:12:4"', );}); it("builds Windows cmd command lines safely", () => { assert.equal( makeWindowsCmdCommandLine("code.cmd", ["--goto", "file.ts:12:4"]), '""code.cmd" "--goto" "file.ts:12:4""', );}); it("builds Windows cmd spawn arguments with cmd control flags", () => { assert.deepEqual(makeWindowsCmdSpawnArguments("code.cmd", ["--goto", "file.ts:1:1"]), [ "/d", "/v:off", "/s", "/c", '""code.cmd" "--goto" "file.ts:1:1""', ]);});
import { assert, it } from "@effect/vitest";
import {
isWindowsBatchShim,
isWindowsCommandNotFound,
makeWindowsCmdCommandLine,
makeWindowsCmdSpawnArguments,
quoteForWindowsCmd,
resolveWindowsCommandShell,
} from "./windowsCommand";
it("resolves cmd.exe from Windows command shell environment variables", () => {
assert.equal(resolveWindowsCommandShell({}), "cmd.exe");
assert.equal(
resolveWindowsCommandShell({ COMSPEC: "C:\\Windows\\System32\\cmd.exe" }),
"C:\\Windows\\System32\\cmd.exe",
);
assert.equal(
resolveWindowsCommandShell({ ComSpec: "C:\\custom\\cmd.exe" }),
"C:\\custom\\cmd.exe",
);
});
it("detects Windows batch shims case-insensitively", () => {
assert.equal(isWindowsBatchShim("code.cmd"), true);
assert.equal(isWindowsBatchShim("C:\\tools\\launcher.BAT"), true);
assert.equal(isWindowsBatchShim("/tmp/code.exe"), false);
});
it("detects Windows command-not-found exits", () => {
assert.equal(isWindowsCommandNotFound(9009, "", "win32"), true);
assert.equal(
isWindowsCommandNotFound(
1,
"'foo' is not recognized as an internal or external command",
"win32",
),
true,
);
assert.equal(isWindowsCommandNotFound(9009, "", "darwin"), false);
});
it("quotes Windows cmd values safely", () => {
assert.equal(
quoteForWindowsCmd('C:\\work\\100% real\\"quoted".ts:12:4'),
'"C:\\work\\100%% real\\""quoted"".ts:12:4"',
);
});
it("builds Windows cmd command lines safely", () => {
assert.equal(
makeWindowsCmdCommandLine("code.cmd", ["--goto", "file.ts:12:4"]),
'""code.cmd" "--goto" "file.ts:12:4""',
);
});
it("builds Windows cmd spawn arguments with cmd control flags", () => {
assert.deepEqual(makeWindowsCmdSpawnArguments("code.cmd", ["--goto", "file.ts:1:1"]), [
"/d",
"/v:off",
"/s",
"/c",
'""code.cmd" "--goto" "file.ts:1:1""',
]);
});