- Add engine shell utility to resolve the correct shell per platform - Update routine runner to execute commands through shared shell selection - Update cron runner to use the same cross-platform shell behavior - Apply shared shell handling in dashboard routes for command execution - Add shell utility tests covering platform-specific selection behavior
20 lines
512 B
TypeScript
20 lines
512 B
TypeScript
import { describe, expect, it, vi, afterEach } from "vitest";
|
|
|
|
describe("shell-utils", () => {
|
|
afterEach(() => {
|
|
vi.restoreAllMocks();
|
|
vi.resetModules();
|
|
});
|
|
|
|
it.each([
|
|
["win32", "cmd.exe"],
|
|
["linux", "/bin/sh"],
|
|
])("returns %s shell as %s", async (platform, expectedShell) => {
|
|
vi.spyOn(process, "platform", "get").mockReturnValue(platform as NodeJS.Platform);
|
|
|
|
const { defaultShell } = await import("../shell-utils.js");
|
|
|
|
expect(defaultShell).toBe(expectedShell);
|
|
});
|
|
});
|