Summary
Build a repeatable acceptance test suite from the test battery documented in #20. These are not unit tests — they verify the installed binary on real hardware from a user's perspective.
What we need
A test runner (shell script, justfile recipe, or both) that:
- Runs scripted tests — automated assertions with pass/fail output
- Annotates each test with intent — what it verifies, why it matters, what issue it traces to
- Flags manual-only tests — describes expected behavior for a human or AI agent to evaluate
- Reports results — summary of pass/fail/skip with enough context to diagnose failures
Test groups (from #20)
- Self-update — version identity, update cycle, channel filtering
- Session lifecycle — start, list, status, detach/reattach, stop
- Control session behavior — single vs multi, sharing, cleanup
- Session content — aclaude launches in correct pane, persona voice
- One-shot prompt — text vs JSON output
- Configuration — config display, persona list
- tmux-cmc protocol — debug trace, tcgetattr regression
Design principles
- Dual-layer: Each test has an intent description (human/AI-readable) and a script (executable). The intent layer explains why this test exists and what a failure means. The script layer runs the check.
- Regression anchors: Every test links to the issue that created it. If a test fails, the issue tells you the full debugging history.
- Two audiences: An AI agent running these tests should be able to read the intent, run the script, and make a judgment call on whether the result is acceptable — especially for subjective tests (TUI rendering, persona voice).
- Portable: Must run on the target hardware (aarch64 Raspberry Pi, tmux 3.5a, no sudo, no image protocol). No dependencies beyond bash and the aclaude-a binary.
Suggested location
tests/
acceptance/
run.sh # test runner
01-self-update.sh
02-session-lifecycle.sh
03-control-sessions.sh
04-session-content.sh
05-one-shot-prompt.sh
06-configuration.sh
07-tmux-cmc-protocol.sh
Or as justfile recipes:
just test-acceptance # run all
just test-acceptance-update # group 1 only
just test-acceptance-session # group 2 only
Reference
Full test battery with scripts and intent annotations: #20
Summary
Build a repeatable acceptance test suite from the test battery documented in #20. These are not unit tests — they verify the installed binary on real hardware from a user's perspective.
What we need
A test runner (shell script, justfile recipe, or both) that:
Test groups (from #20)
Design principles
Suggested location
Or as justfile recipes:
Reference
Full test battery with scripts and intent annotations: #20