-
Notifications
You must be signed in to change notification settings - Fork 0
Testing and Verification
Tuim maintains a rigorous, multi-tiered test suite covering unit logic, pseudo-terminal (PTY) interactions, UI widget behaviors, installer plans, and cross-platform terminal compatibility.
Run all native Zig unit tests covering data structures, MessagePack decoding, layout primitives, and unicode width calculations:
zig build testPTY tests spawn real headless Neovim and Tuim sessions inside simulated terminal pseudo-devices to verify end-to-end event loops, text rendering, and process lifecycle:
# Build the binary first
zig build
# Run controlling TTY input suite
python3 tests/controlling_tty.py
# Run main PTY integration suite (modes, typing, mouse, exit cleanup)
python3 tests/pty_integration.py
# Verify default runtime, Treesitter queries, and Zig highlighting
python3 tests/default_runtime.pyThe tests/ directory contains targeted Python UI automation tests that verify specific native widgets:
Note
Prerequisites for UI Tests: The UI test scripts use tmux to host and drive interactive terminal sessions. Ensure tmux is installed (sudo apt install tmux or brew install tmux). Additionally, pickers_ui.py and plugins_ui.py require plugins to be bootstrapped in ~/.local/share/tuim/lazy.
# Test F1 command palette and key remapping
python3 tests/commands_ui.py
# Test fuzzy pickers and preview pane
python3 tests/pickers_ui.py
# Test extensions manager, categories, and marketplace listing
python3 tests/plugins_ui.py
python3 tests/plugin_manager.py
# Test workspace sidebar collapse and region focus
python3 tests/workspace_ui.py
# Test hover documentation and diagnostics rendering
python3 tests/hover_ui.py
# Test onboarding wizard
python3 tests/onboarding_ui.pyTuim includes a real PTY suite that tests terminal attribute restoration, alternate screen cleanup, mouse tracking, and resize storms:
# Run host terminal smoke suite
tests/terminal_compat.sh host
# Run isolated tmux server smoke suite
tests/terminal_compat.sh tmux
# Run loopback OpenSSH remote PTY suite
tests/terminal_compat.sh sshBefore submitting pull requests or merging code, ensure code formatting and shell scripts pass static analysis:
# Verify Zig source formatting
zig fmt --check build.zig src/main.zig src/nvim/ui_protocol.zig src/tui/renderer.zig
# Check shell scripts with shellcheck
shellcheck setup.sh update.sh uninstall.sh build_appimage.sh tests/*.sh scripts/*.sh
# Validate static website HTML/CSS
python3 tests/site.pyLearn how performance benchmarks are captured in Performance Profiling.
Tuim Repository ยท Releases ยท Issue Tracker ยท Website ยท Licensed under MIT
- Workspace Overview
- Editing Modes
- Keybindings & Shortcuts
- File & Buffer Management
- Integrated Terminal
- Git Integration
- Extensions & Plugins
- Language Tools & LSP
- AI Coding Assistants