Skip to content

Test Coverage

Summary

PlatformTest FilesTestsCoverage Level
Rust Backend24 integration + many unit~500+Comprehensive
Rust TUI1 (54KB)79Good
Web Frontend6~130+Partial
Mobile121Minimal

Rust TUI Tests (79)

CategoryCountCoverage
State transitions11Initial state, navigation, dialog open/close, quit
Event handlers20Shortcuts, text input, toggles, delete confirmation
Rendering6Empty/populated lists, error, loading, help
API integration14CRUD, archive, reconcile, blocking, state tracking
Directory picker8Lifecycle, navigation, search, selection
Signal menu8State, selection, open/close, rendering

Not tested: Mouse, resize, scroll, unicode, copy mode, locked mode, session switching, external editor.


Docker Backend Tests (46)

CategoryCountKey Coverage
Build args9-dit, non-root, workdir, prefix, attach, print mode
Security5Git config sanitization, prompt escaping
Caching1Cargo/sccache volumes
Git worktree6Parent .git mount, relative paths, error handling
Uploads/history4Mount, path translation, subdirectory paths
Dangerous mode2Skip checks, claude.json handling
E2E (IGNORED)5Full lifecycle, exists, attach, running check
Integration (IGNORED)4Full lifecycle with attach, worktree+container
Smoke (IGNORED)5Claude startup, non-root, prompt, print mode

Not tested: CPU/memory limits, volume lifecycle, multi-container, crash detection.


Zellij Tests (15)

CategoryCountKey Coverage
Unit11Background flag, CWD, bash, escaping, images
E2E (3 IGNORED)4Lifecycle, exists, attach, delete non-existent

Health & Reconciliation Tests (67)

  • Health check logic (28): All ResourceStates, backend-specific actions, startup detection
  • API serialization (29): State/action/report serialization
  • Reconciliation (5): Worktree/container cleanup, stale sessions
  • Backend utilities (5): GitBackend, path generation

API Endpoint Coverage

| Endpoint | Tested | Endpoint | Tested | | --------------------------- | :----: | ---------------------------- | :----: | ----------------- | --- | | GET /api/sessions | ✅ | POST .../refresh | ❌ | | POST /api/sessions | ✅ | POST .../start | ⚠️ | | GET /api/sessions/{id} | ✅ | POST .../recreate/cleanup | ⚠️ | | DELETE /api/sessions/{id} | ✅ | POST .../archive | ✅ | GET .../history | ❌ | | POST .../unarchive | ✅ | POST .../upload | ❌ | | POST .../metadata | ✅ | POST /api/browse-directory | ❌ | | GET /api/health | ✅ | WS /ws/console | ❌ | | GET .../health | ✅ | WS /ws/events | ❌ |


Web Frontend Tests (6 files, ~130+ tests)

FileTestsCoverage
RecreateConfirmModal.test.tsx21State display, actions, data safety
RecreateBlockedModal.test.tsx13Blocked detection, backend-specific
ThemeToggle.test.tsx13localStorage, system prefs, persistence
StartupHealthModal.test.tsx8Health labels, colors, filtering
claudeParser.test.ts30+ANSI, code blocks, paths, tools, messages
codexHistoryParser.test.ts20+Format detection, parsing, function calls

Not tested: Component rendering, user interactions, API calls, hooks, terminal, WebSocket, routing.


Mobile Tests (1 file, 21 tests)

historyParser.test.ts: Message parsing, tool use/result matching.


Feature Test Matrix

FeatureRust BackendTUIWebMobile
List sessions
Create session
Delete session
Health status
Message parsingN/A
PTY creationN/A
Signal menuN/AN/AN/A

Priority Gaps

PriorityGapImpact
P0Mobile: No component testsAll UI untested
P0WebSocket endpoints: 0 testsReal-time features untested
P0No HTTP integration testsOnly unit tests
P1Web: No component renderingReact components untested
P1Web: No hook testsState management untested

Running Tests

Terminal window
cargo nextest run # Rust (all)
cargo nextest run --run-ignored all # Rust (including E2E)
cd web && bun test # Web
cd mobile && bun test # Mobile