Squashed 'third_party/pi/' content from commit d981de122

git-subtree-dir: third_party/pi
git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
2026-09-14 10:40:08 -04:00
commit 67b361f0e9
1669 changed files with 397627 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
import { describe, expect, it } from "vitest";
import { createPowerShellTool } from "../src/core/tools/powershell.ts";
import { getPowerShellConfig, POWERSHELL_ARGS } from "../src/utils/shell.ts";
function getTextOutput(result: { content: Array<{ type: string; text?: string }> }): string {
return result.content
.filter((content) => content.type === "text")
.map((content) => content.text ?? "")
.join("\n");
}
describe("powershell tool", () => {
it("uses process-local execution policy bypass", () => {
expect(POWERSHELL_ARGS).toEqual(["-NoProfile", "-NonInteractive", "-ExecutionPolicy", "Bypass", "-Command"]);
});
it.skipIf(process.platform !== "win32")("executes PowerShell commands with UTF-8 output", async () => {
const config = getPowerShellConfig();
expect(config.args).toEqual(POWERSHELL_ARGS);
const tool = createPowerShellTool(process.cwd());
const result = await tool.execute("powershell-test", {
command: "Write-Output 'héllo €'; Get-ExecutionPolicy -Scope Process",
});
const output = getTextOutput(result);
expect(output).toContain("héllo €");
expect(output).toContain("Bypass");
});
});