Verified: - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: rodrigouroz <384037+rodrigouroz@users.noreply.github.com> Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
const { spawnAndCollectMock } = vi.hoisted(() => ({
|
|
spawnAndCollectMock: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("./process.js", () => ({
|
|
spawnAndCollect: spawnAndCollectMock,
|
|
}));
|
|
|
|
import { __testing, resolveAcpxAgentCommand } from "./mcp-agent-command.js";
|
|
|
|
describe("resolveAcpxAgentCommand", () => {
|
|
it("threads stripProviderAuthEnvVars through the config show probe", async () => {
|
|
spawnAndCollectMock.mockResolvedValueOnce({
|
|
stdout: JSON.stringify({
|
|
agents: {
|
|
codex: {
|
|
command: "custom-codex",
|
|
},
|
|
},
|
|
}),
|
|
stderr: "",
|
|
code: 0,
|
|
error: null,
|
|
});
|
|
|
|
const command = await resolveAcpxAgentCommand({
|
|
acpxCommand: "/plugin/node_modules/.bin/acpx",
|
|
cwd: "/plugin",
|
|
agent: "codex",
|
|
stripProviderAuthEnvVars: true,
|
|
});
|
|
|
|
expect(command).toBe("custom-codex");
|
|
expect(spawnAndCollectMock).toHaveBeenCalledWith(
|
|
{
|
|
command: "/plugin/node_modules/.bin/acpx",
|
|
args: ["--cwd", "/plugin", "config", "show"],
|
|
cwd: "/plugin",
|
|
stripProviderAuthEnvVars: true,
|
|
},
|
|
undefined,
|
|
);
|
|
});
|
|
});
|
|
|
|
describe("buildMcpProxyAgentCommand", () => {
|
|
it("escapes Windows-style proxy paths without double-escaping backslashes", () => {
|
|
const quoted = __testing.quoteCommandPart(
|
|
"C:\\repo\\extensions\\acpx\\src\\runtime-internals\\mcp-proxy.mjs",
|
|
);
|
|
|
|
expect(quoted).toBe(
|
|
'"C:\\\\repo\\\\extensions\\\\acpx\\\\src\\\\runtime-internals\\\\mcp-proxy.mjs"',
|
|
);
|
|
expect(quoted).not.toContain("\\\\\\");
|
|
});
|
|
});
|