mirror of
https://github.com/luckyyzh/pi-agent-integrated.git
synced 2026-10-03 02:59:35 +00:00
33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
async function loadSubject() {
|
|
return import("./custom-ui-terminal.ts");
|
|
}
|
|
|
|
test("headless custom UI exposes stable terminal dimensions", async () => {
|
|
const { createHeadlessCustomUiTui, DEFAULT_CUSTOM_UI_COLUMNS, DEFAULT_CUSTOM_UI_ROWS } = await loadSubject();
|
|
const tui = createHeadlessCustomUiTui(() => {});
|
|
|
|
assert.deepEqual(tui.terminal, {
|
|
columns: DEFAULT_CUSTOM_UI_COLUMNS,
|
|
rows: DEFAULT_CUSTOM_UI_ROWS,
|
|
kittyProtocolActive: false,
|
|
});
|
|
assert.equal(Object.isFrozen(tui), true);
|
|
assert.equal(Object.isFrozen(tui.terminal), true);
|
|
});
|
|
|
|
test("headless custom UI supports plugin rendering and render requests", async () => {
|
|
const { createHeadlessCustomUiTui } = await loadSubject();
|
|
let renders = 0;
|
|
const tui = createHeadlessCustomUiTui(() => { renders += 1; }, 80, 24);
|
|
const pluginComponent = {
|
|
render: (width) => [`${width}:${tui.terminal.columns}x${tui.terminal.rows}`],
|
|
};
|
|
|
|
assert.deepEqual(pluginComponent.render(80), ["80:80x24"]);
|
|
tui.requestRender();
|
|
assert.equal(renders, 1);
|
|
});
|