feat(FN-2689): standardize cross-platform shell selection

- 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
This commit is contained in:
Fusion
2026-04-27 08:33:03 -07:00
committed by gsxdsm
parent e877d99262
commit db95f77d7b
5 changed files with 28 additions and 4 deletions

View File

@@ -0,0 +1,19 @@
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);
});
});