Squashed 'third_party/pi/' content from commit d981de122
git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
30
packages/coding-agent/test/powershell-tool.test.ts
Normal file
30
packages/coding-agent/test/powershell-tool.test.ts
Normal 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");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user