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); }); });