These docs describe the main branch, including unreleased changes. Read the 0.6.0 docs.

@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>; }
Testing
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>; }
Testing
function createSpy(): { (...args: any[]): void; calls: any[][]; callCount(): number; calledWith(...expected: any[]): boolean; reset(): number; }
Testing
function createTerminalCapabilities(overrides?: TerminalCapabilitiesOverrides): TerminalCapabilities
Testing
function createTestRenderer(options: TestRendererOptions): Promise<TestRendererSetup>
Testing
function pasteBytes(text: string): Uint8Array
Testing
function setRendererCapabilities(renderer: CliRenderer, overrides?: TerminalCapabilitiesOverrides): TerminalCapabilities
Testing

Classes#

class ManualClock implements Clock
Testing
  • method ManualClock.advance(delayMs: number): void
  • method ManualClock.clearInterval(handle: TimerHandle): void
  • method ManualClock.clearTimeout(handle: TimerHandle): void
  • method ManualClock.now(): number
  • method ManualClock.runAll(): void
  • method ManualClock.setInterval(fn: () => void, delayMs: number): TimerHandle
  • method ManualClock.setTime(time: number): void
  • method ManualClock.setTimeout(fn: () => void, delayMs: number): TimerHandle
  • readonly property ManualClock.pendingTimerCount: number0.6.0
class MockTreeSitterClient extends TreeSitterClientconstructor MockTreeSitterClient(options?: { autoResolveTimeout?: number; clock?: Clock; })
Testing
  • method MockTreeSitterClient.destroy(): Promise<void>0.4.0
  • method MockTreeSitterClient.highlightOnce(content: string, filetype: string): Promise<{ highlights?: SimpleHighlight[]; warning?: string; error?: string; }>
  • method MockTreeSitterClient.isHighlighting(): boolean
  • method MockTreeSitterClient.resolveAllHighlightOnce(): void
  • method MockTreeSitterClient.resolveHighlightOnce(index?: number): void
  • method MockTreeSitterClient.setMockResult(result: { highlights?: SimpleHighlight[]; warning?: string; error?: string; }): void
class TestRecorderconstructor TestRecorder(renderer: TestRenderer, options?: TestRecorderOptions)
Testing
  • method TestRecorder.clear(): void
  • method TestRecorder.rec(): void
  • method TestRecorder.stop(): void
  • readonly property TestRecorder.isRecording: boolean
  • readonly property TestRecorder.recordedFrames: RecordedFrame[]

Interfaces#

interface MockKeysOptions
Testing
  • property MockKeysOptions.kittyKeyboard?: boolean
  • property MockKeysOptions.otherModifiersMode?: boolean
interface MouseEventOptions
Testing
  • property MouseEventOptions.button?: MouseButton
  • property MouseEventOptions.delayMs?: number
  • property MouseEventOptions.modifiers?: MouseModifiers
interface MouseModifiers
Testing
  • property MouseModifiers.alt?: boolean
  • property MouseModifiers.ctrl?: boolean
  • property MouseModifiers.shift?: boolean
interface MousePosition
Testing
  • property MousePosition.x: number
  • property MousePosition.y: number
interface RecordedFrame
Testing
  • property RecordedFrame.buffers?: RecordedBuffers
  • property RecordedFrame.frame: string
  • property RecordedFrame.frameNumber: number
  • property RecordedFrame.timestamp: number
interface TerminalCapabilitiesOverrides extends Partial<Omit<TerminalCapabilities, "terminal">>
Testing
  • property TerminalCapabilitiesOverrides.terminal?: Partial<TerminalInfo>
interface TestExternalOutput
Testing
  • method TestExternalOutput.clear(): void
  • method TestExternalOutput.take(): TestExternalOutputCommit[]
  • method TestExternalOutput.takeText(): string
interface TestExternalOutputCommit
Testing
  • property TestExternalOutputCommit.height: number
  • property TestExternalOutputCommit.rowColumns: number
  • property TestExternalOutputCommit.rows: string[]
  • property TestExternalOutputCommit.startOnNewLine: boolean
  • property TestExternalOutputCommit.text: string
  • property TestExternalOutputCommit.trailingNewline: boolean
  • property TestExternalOutputCommit.width: number
interface TestFlushOptions
Testing
  • property TestFlushOptions.maxPasses?: number
interface TestRendererOptions extends CliRendererConfig
Testing
  • property TestRendererOptions.height?: number
  • property TestRendererOptions.kittyKeyboard?: boolean
  • property TestRendererOptions.otherModifiersMode?: boolean
  • property TestRendererOptions.width?: number
interface TestRendererSetup
Testing
  • property TestRendererSetup.[Symbol.asyncDispose]: () => Promise<void>0.6.0
  • property TestRendererSetup.captureCharFrame: () => string
  • property TestRendererSetup.captureSpans: () => CapturedFrame
  • property TestRendererSetup.dispose: () => Promise<void>0.6.0
  • property TestRendererSetup.externalOutput: TestExternalOutput
  • property TestRendererSetup.flush: (options?: TestFlushOptions) => Promise<void>
  • property TestRendererSetup.getNativeStats: () => NativeRenderStats
  • property TestRendererSetup.mockInput: MockInput
  • property TestRendererSetup.mockMouse: MockMouse
  • property TestRendererSetup.renderOnce: () => Promise<void>
  • property TestRendererSetup.renderer: TestRenderer
  • property TestRendererSetup.resize: (width: number, height: number) => void
  • property 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 TestVisualIdleOptions
Testing
  • property TestVisualIdleOptions.maxFrames?: number
  • property TestVisualIdleOptions.quietFrames?: number
interface TestWaitForOptions
Testing
  • property TestWaitForOptions.maxPasses?: number

Types#

type KeyInput = string | keyof typeof KeyCodes
Testing
type MockInput = ReturnType<typeof createMockKeys>
Testing
type MockMouse = ReturnType<typeof createMockMouse>
Testing
type MouseButton = (typeof MouseButtons)[keyof typeof MouseButtons]
Testing
type MouseEventType = "down" | "up" | "move" | "drag" | "scroll"
Testing
type TestRenderer = CliRenderer
Testing

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~"; }
Testing
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; }
Testing