feat(marmot-interop): add zero-prompt headless harness driving amy
Matches the 13 scenarios in marmot-interop.sh but runs A via the new `amy` CLI instead of prompting the human. Identities B and C still go through `wn`/`wnd` from whitenoise-rs. Layout: - marmot-interop-headless.sh — top-level entrypoint - headless/setup.sh — preflight, daemon lifecycle, identities - headless/helpers.sh — amy wrappers + assertion helpers - headless/tests-create.sh — tests 01..05 - headless/tests-manage.sh — tests 06, 07, 08, 11 - headless/tests-extras.sh — tests 09, 10, 12, 13 Reuses lib.sh for colours, record_result, wait_for_invite/message, jq_group_id, and dump_daemon_diagnostics. Keeps the interactive marmot-interop.sh intact for final UI sign-off. https://claude.ai/code/session_01M6dCKAF5Y1VyHGZPjzwDXq
This commit is contained in:
@@ -1,13 +1,20 @@
|
||||
# Marmot Interop Test Harness
|
||||
|
||||
Interactive harness that validates Amethyst's Marmot/MLS implementation against
|
||||
**whitenoise-rs** (https://github.com/marmot-protocol/whitenoise-rs), the
|
||||
reference Rust implementation that powers the White Noise Flutter app.
|
||||
Two flavours, same scenarios:
|
||||
|
||||
The harness drives two `wn` daemons (Identities **B** and **C**) from the
|
||||
command line and prompts the human operator to perform the Amethyst-side steps
|
||||
in the mobile UI as **Identity A**. Every test records a pass/fail/skip result
|
||||
into a tab-separated log, and the summary is printed at the end of the run.
|
||||
- **`marmot-interop.sh`** — interactive. Drives B/C via `wn` and **prompts the
|
||||
human** to perform each Amethyst-side step in the mobile UI (Identity A).
|
||||
Use this for final UI verification.
|
||||
- **`marmot-interop-headless.sh`** — zero prompts. Drives A via the `amy` CLI
|
||||
(`./gradlew :cli:installDist`) and B/C via `wn`. Runs every scenario
|
||||
end-to-end and exits with a pass/fail summary. Use this for CI and for
|
||||
iterating on the Nostr/Marmot plumbing without needing to touch a phone.
|
||||
|
||||
Both harnesses validate Amethyst against **whitenoise-rs**
|
||||
(https://github.com/marmot-protocol/whitenoise-rs), the reference Rust
|
||||
implementation that powers the White Noise Flutter app. Every test records a
|
||||
pass/fail/skip result into a tab-separated log, and the summary is printed at
|
||||
the end of the run.
|
||||
|
||||
## What gets tested
|
||||
|
||||
|
||||
Reference in New Issue
Block a user