Files
pi/packages/coding-agent/test/trust-selector.test.ts
2026-06-05 10:51:43 +02:00

49 lines
1.3 KiB
TypeScript

import { setKeybindings } from "@earendil-works/pi-tui";
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import { KeybindingsManager } from "../src/core/keybindings.ts";
import { TrustSelectorComponent } from "../src/modes/interactive/components/trust-selector.ts";
import { initTheme } from "../src/modes/interactive/theme/theme.ts";
import { stripAnsi } from "../src/utils/ansi.ts";
describe("TrustSelectorComponent", () => {
beforeAll(() => {
initTheme("dark");
});
beforeEach(() => {
setKeybindings(new KeybindingsManager());
});
it("marks the saved trusted decision", () => {
const selector = new TrustSelectorComponent({
cwd: "/project",
savedDecision: true,
projectTrusted: true,
onSelect: () => {},
onCancel: () => {},
});
const output = stripAnsi(selector.render(120).join("\n"));
expect(output).toContain("Saved decision: trusted");
expect(output).toContain("Current session: trusted");
expect(output).toContain("Trust ✓");
expect(output).not.toContain("Do not trust ✓");
});
it("selects a trust decision", () => {
const onSelect = vi.fn();
const selector = new TrustSelectorComponent({
cwd: "/project",
savedDecision: null,
projectTrusted: false,
onSelect,
onCancel: () => {},
});
selector.handleInput("\n");
expect(onSelect).toHaveBeenCalledWith(true);
});
});