UNPKG

@teaui/core

Version:

A high-level terminal UI library for Node

52 lines 1.28 kB
import { TestTerminal } from './TestTerminal.js'; /** * A headless Program for testing. Wraps a TestTerminal for output assertions, * and allows pushing events programmatically via sendEvent(). */ export class TestProgram { #terminal; #eventListener; constructor({ cols, rows }) { this.#terminal = new TestTerminal({ cols, rows }); } get terminal() { return this.#terminal; } // --- SGRTerminal interface --- get cols() { return this.#terminal.cols; } get rows() { return this.#terminal.rows; } move(x, y) { this.#terminal.move(x, y); } write(str) { this.#terminal.write(str); } flush() { this.#terminal.flush(); } // --- Program lifecycle --- setup() { } teardown() { } // --- Events --- onEvents(listener) { this.#eventListener = listener; return () => { this.#eventListener = undefined; }; } onResize(_listener) { // No resize in tests — return no-op unsubscribe return () => { }; } /** * Push a system event into the Screen's event pipeline. */ sendEvent(event) { this.#eventListener?.(event); } } //# sourceMappingURL=TestProgram.js.map