31 lines
948 B
TypeScript
31 lines
948 B
TypeScript
import { afterEach, describe, expect, test } from "vitest";
|
|
import { detectInstallMethod, getUpdateInstruction } from "../src/config.js";
|
|
|
|
const execPathDescriptor = Object.getOwnPropertyDescriptor(process, "execPath");
|
|
|
|
function setExecPath(value: string): void {
|
|
Object.defineProperty(process, "execPath", {
|
|
value,
|
|
configurable: true,
|
|
});
|
|
}
|
|
|
|
afterEach(() => {
|
|
if (execPathDescriptor) {
|
|
Object.defineProperty(process, "execPath", execPathDescriptor);
|
|
}
|
|
});
|
|
|
|
describe("detectInstallMethod", () => {
|
|
test("detects pnpm from Windows .pnpm install paths", () => {
|
|
setExecPath(
|
|
"C:\\Users\\Admin\\Documents\\pnpm-repository\\global\\5\\.pnpm\\@mariozechner+pi-coding-agent@0.67.68\\node_modules\\@mariozechner\\pi-coding-agent\\dist\\cli.js",
|
|
);
|
|
|
|
expect(detectInstallMethod()).toBe("pnpm");
|
|
expect(getUpdateInstruction("@mariozechner/pi-coding-agent")).toBe(
|
|
"Run: pnpm install -g @mariozechner/pi-coding-agent",
|
|
);
|
|
});
|
|
});
|