feat(coding-agent): add extension project trust decisions

This commit is contained in:
Mario Zechner
2026-06-08 12:58:49 +02:00
parent dce3e28516
commit 718215bd95
18 changed files with 631 additions and 86 deletions

View File

@@ -0,0 +1,44 @@
import assert from "node:assert";
import { describe, it } from "node:test";
import { type Component, TUI } from "../src/tui.ts";
import { VirtualTerminal } from "./virtual-terminal.ts";
class Lines implements Component {
private lines: string[];
constructor(lines: string[]) {
this.lines = lines;
}
render(): string[] {
return this.lines;
}
invalidate(): void {}
}
describe("TUI shrinking content", () => {
it("clears all rendered lines when content shrinks to zero", async () => {
const terminal = new VirtualTerminal(40, 10);
const tui = new TUI(terminal);
const content = new Lines(["first", "second", "third"]);
tui.addChild(content);
tui.start();
await terminal.waitForRender();
assert.ok(terminal.getViewport().some((line) => line.includes("first")));
assert.ok(terminal.getViewport().some((line) => line.includes("second")));
assert.ok(terminal.getViewport().some((line) => line.includes("third")));
tui.clear();
tui.requestRender();
await terminal.waitForRender();
const viewport = terminal.getViewport();
assert.ok(!viewport.some((line) => line.includes("first")), "first line should be cleared");
assert.ok(!viewport.some((line) => line.includes("second")), "second line should be cleared");
assert.ok(!viewport.some((line) => line.includes("third")), "third line should be cleared");
tui.stop();
});
});