@opentui/core/testing
Every export of @opentui/core/testing in the main-branch source, from its type declarations. A version names the release that added an export after the module's first release.
Functions#
function createMockKeys(renderer: CliRenderer, options?: MockKeysOptions): { pressKeys: (keys: KeyInput[], delayMs?: number) => Promise<void>; pressKey: (key: KeyInput, modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; typeText: (text: string, delayMs?: number) => Promise<void>; pressEnter: (modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressEscape: (modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressTab: (modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressBackspace: (modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressArrow: (direction: "up" | "down" | "left" | "right", modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressCtrlC: () => void; pasteBracketedText: (text: string) => Promise<void>; }function createMockMouse(renderer: CliRenderer): { moveTo: (x: number, y: number, options?: MouseEventOptions) => Promise<void>; click: (x: number, y: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; doubleClick: (x: number, y: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; pressDown: (x: number, y: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; release: (x: number, y: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; drag: (startX: number, startY: number, endX: number, endY: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; scroll: (x: number, y: number, direction: "up" | "down" | "left" | "right", options?: MouseEventOptions) => Promise<void>; getCurrentPosition: () => MousePosition; getPressedButtons: () => MouseButton[]; emitMouseEvent: (type: MouseEventType, x: number, y: number, button?: MouseButton, options?: Omit<MouseEventOptions, "button">) => Promise<void>; }function createSpy(): { (...args: any[]): void; calls: any[][]; callCount(): number; calledWith(...expected: any[]): boolean; reset(): number; }function createTerminalCapabilities(overrides?: TerminalCapabilitiesOverrides): TerminalCapabilitiesfunction createTestRenderer(options: TestRendererOptions): Promise<TestRendererSetup>function pasteBytes(text: string): Uint8Arrayfunction setRendererCapabilities(renderer: CliRenderer, overrides?: TerminalCapabilitiesOverrides): TerminalCapabilities
Classes#
class ManualClock implements Clockmethod ManualClock.advance(delayMs: number): voidmethod ManualClock.clearInterval(handle: TimerHandle): voidmethod ManualClock.clearTimeout(handle: TimerHandle): voidmethod ManualClock.now(): numbermethod ManualClock.runAll(): voidmethod ManualClock.setInterval(fn: () => void, delayMs: number): TimerHandlemethod ManualClock.setTime(time: number): voidmethod ManualClock.setTimeout(fn: () => void, delayMs: number): TimerHandlereadonly property ManualClock.pendingTimerCount: number0.6.0
class MockTreeSitterClient extends TreeSitterClientconstructor MockTreeSitterClient(options?: { autoResolveTimeout?: number; clock?: Clock; })method MockTreeSitterClient.destroy(): Promise<void>0.4.0method MockTreeSitterClient.highlightOnce(content: string, filetype: string): Promise<{ highlights?: SimpleHighlight[]; warning?: string; error?: string; }>method MockTreeSitterClient.isHighlighting(): booleanmethod MockTreeSitterClient.resolveAllHighlightOnce(): voidmethod MockTreeSitterClient.resolveHighlightOnce(index?: number): voidmethod MockTreeSitterClient.setMockResult(result: { highlights?: SimpleHighlight[]; warning?: string; error?: string; }): void
class TestRecorderconstructor TestRecorder(renderer: TestRenderer, options?: TestRecorderOptions)method TestRecorder.clear(): voidmethod TestRecorder.rec(): voidmethod TestRecorder.stop(): voidreadonly property TestRecorder.isRecording: booleanreadonly property TestRecorder.recordedFrames: RecordedFrame[]
Interfaces#
interface MockKeysOptionsproperty MockKeysOptions.kittyKeyboard?: booleanproperty MockKeysOptions.otherModifiersMode?: boolean
interface MouseEventOptionsproperty MouseEventOptions.button?: MouseButtonproperty MouseEventOptions.delayMs?: numberproperty MouseEventOptions.modifiers?: MouseModifiers
interface MouseModifiersproperty MouseModifiers.alt?: booleanproperty MouseModifiers.ctrl?: booleanproperty MouseModifiers.shift?: boolean
interface MousePositionproperty MousePosition.x: numberproperty MousePosition.y: number
interface RecordedFrameproperty RecordedFrame.buffers?: RecordedBuffersproperty RecordedFrame.frame: stringproperty RecordedFrame.frameNumber: numberproperty RecordedFrame.timestamp: number
interface TerminalCapabilitiesOverrides extends Partial<Omit<TerminalCapabilities, "terminal">>property TerminalCapabilitiesOverrides.terminal?: Partial<TerminalInfo>
interface TestExternalOutputmethod TestExternalOutput.clear(): voidmethod TestExternalOutput.take(): TestExternalOutputCommit[]method TestExternalOutput.takeText(): string
interface TestExternalOutputCommitproperty TestExternalOutputCommit.height: numberproperty TestExternalOutputCommit.rowColumns: numberproperty TestExternalOutputCommit.rows: string[]property TestExternalOutputCommit.startOnNewLine: booleanproperty TestExternalOutputCommit.text: stringproperty TestExternalOutputCommit.trailingNewline: booleanproperty TestExternalOutputCommit.width: number
interface TestFlushOptionsproperty TestFlushOptions.maxPasses?: number
interface TestRendererOptions extends CliRendererConfigproperty TestRendererOptions.height?: numberproperty TestRendererOptions.kittyKeyboard?: booleanproperty TestRendererOptions.otherModifiersMode?: booleanproperty TestRendererOptions.width?: number
interface TestRendererSetupproperty TestRendererSetup.[Symbol.asyncDispose]: () => Promise<void>0.6.0property TestRendererSetup.captureCharFrame: () => stringproperty TestRendererSetup.captureSpans: () => CapturedFrameproperty TestRendererSetup.dispose: () => Promise<void>0.6.0property TestRendererSetup.externalOutput: TestExternalOutputproperty TestRendererSetup.flush: (options?: TestFlushOptions) => Promise<void>property TestRendererSetup.getNativeStats: () => NativeRenderStatsproperty TestRendererSetup.mockInput: MockInputproperty TestRendererSetup.mockMouse: MockMouseproperty TestRendererSetup.renderOnce: () => Promise<void>property TestRendererSetup.renderer: TestRendererproperty TestRendererSetup.resize: (width: number, height: number) => voidproperty TestRendererSetup.waitFor: (predicate: () => boolean | Promise<boolean>, options?: TestWaitForOptions) => Promise<void>property TestRendererSetup.waitForFrame: (predicate: (frame: string) => boolean | Promise<boolean>, options?: TestWaitForOptions) => Promise<string>property TestRendererSetup.waitForVisualIdle: (options?: TestVisualIdleOptions) => Promise<void>
interface TestVisualIdleOptionsproperty TestVisualIdleOptions.maxFrames?: numberproperty TestVisualIdleOptions.quietFrames?: number
interface TestWaitForOptionsproperty TestWaitForOptions.maxPasses?: number
Types#
type KeyInput = string | keyof typeof KeyCodestype MockInput = ReturnType<typeof createMockKeys>type MockMouse = ReturnType<typeof createMockMouse>type MouseButton = (typeof MouseButtons)[keyof typeof MouseButtons]type MouseEventType = "down" | "up" | "move" | "drag" | "scroll"type TestRenderer = CliRenderer
Constants and variables#
const KeyCodes: { readonly RETURN: "\r"; readonly LINEFEED: "\n"; readonly TAB: "\t"; readonly BACKSPACE: "\b"; readonly DELETE: "\u001B[3~"; readonly HOME: "\u001B[H"; readonly END: "\u001B[F"; readonly ESCAPE: "\u001B"; readonly ARROW_UP: "\u001B[A"; readonly ARROW_DOWN: "\u001B[B"; readonly ARROW_RIGHT: "\u001B[C"; readonly ARROW_LEFT: "\u001B[D"; readonly F1: "\u001BOP"; readonly F2: "\u001BOQ"; readonly F3: "\u001BOR"; readonly F4: "\u001BOS"; readonly F5: "\u001B[15~"; readonly F6: "\u001B[17~"; readonly F7: "\u001B[18~"; readonly F8: "\u001B[19~"; readonly F9: "\u001B[20~"; readonly F10: "\u001B[21~"; readonly F11: "\u001B[23~"; readonly F12: "\u001B[24~"; }const MouseButtons: { readonly LEFT: 0; readonly MIDDLE: 1; readonly RIGHT: 2; readonly WHEEL_UP: 64; readonly WHEEL_DOWN: 65; readonly WHEEL_LEFT: 66; readonly WHEEL_RIGHT: 67; }