Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Initial implementation of mimic TUI testing library
- PTY-based terminal emulation with
portable-pty - VT100/ANSI escape sequence parsing with
vtparseandtermwiz - Sixel graphics position tracking and verification
- Bevy ECS integration for testing Bevy TUI applications
- Async/await support with Tokio
- Snapshot testing integration with
insta - Comprehensive test harness API (
TuiTestHarness) - Screen state inspection (
ScreenState,Cell,SixelRegion) - Event simulation (keyboard input, wait conditions)
- Examples for common testing scenarios
- Full documentation and API reference
Features
async-tokio: Tokio async runtime supportbevy: Bevy ECS integrationbevy-ratatui: bevy_ratatui plugin supportratatui-helpers: Ratatui-specific test helperssixel: Sixel graphics position trackingsnapshot-insta: Snapshot testing with instamvp: Bundle of all MVP features
Public API
TuiTestHarness: Main test harness for PTY-based testingScreenState: Terminal screen state with VT100 parsingScreenState::new(width, height): Create new screen stateScreenState::feed(data): Process terminal escape sequencesScreenState::get_cell(row, col): Access individual cellsScreenState::contents(): Get screen contents as stringScreenState::sixel_regions(): Get Sixel graphics regionsCell: Terminal cell with character and attributesSixelRegion: Sixel graphics position and dataTestTerminal: PTY management wrapperBevyTuiTestHarness: Bevy-specific test harness
Addresses
- Issue #1: TUI Integration Testing Framework Requirements - Fully implemented
- Issue #7: Add public API for headless/stream-based parsing - Implemented via
ScreenState::feed() - Issue #8: Expose Screen/Grid state for verification - Implemented via
get_cell()and publicCellstruct
0.1.0 - TBD
Initial release of mimic.