import { describe, expect, it } from "vitest" ;
import { resolveQaNodeExecPath } from "./node-exec.js" ;
describe("resolveQaNodeExecPath" , () => {
it("reuses the current exec path when already running under Node" , async () => {
await expect(
resolveQaNodeExecPath({
execPath: "/opt/homebrew/bin/node" ,
platform: "darwin" ,
versions: { ...process.versions, bun: undefined },
}),
).resolves.toBe("/opt/homebrew/bin/node" );
});
it("reuses nodejs as a valid current Node executable" , async () => {
await expect(
resolveQaNodeExecPath({
execPath: "/usr/bin/nodejs" ,
platform: "linux" ,
versions: { ...process.versions, bun: undefined },
execFileImpl: async () => {
throw new Error("should not search PATH" );
},
}),
).resolves.toBe("/usr/bin/nodejs" );
});
it("resolves node from PATH when the parent runtime is bun" , async () => {
await expect(
resolveQaNodeExecPath({
execPath: "/opt/homebrew/bin/bun" ,
platform: "darwin" ,
versions: { ...process.versions, bun: "1.2.3" },
execFileImpl: async () => ({
stdout: "/usr/local/bin/node\n" ,
stderr: "" ,
}),
}),
).resolves.toBe("/usr/local/bin/node" );
});
it("throws a clear error when node is unavailable" , async () => {
await expect(
resolveQaNodeExecPath({
execPath: "/opt/homebrew/bin/bun" ,
platform: "darwin" ,
versions: { ...process.versions, bun: "1.2.3" },
execFileImpl: async () => {
throw new Error("missing" );
},
}),
).rejects.toThrow("Node not found in PATH" );
});
});
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland