Files
featherChat/warzone/UAT/PHASE2.md
Siavash Sameni c8b51fa96b UAT test plans for all 7 phases
UAT/PHASE1.md — 20 test scenarios, 80+ checkboxes
  Identity, encryption, messaging, TUI, web, groups, aliases,
  auth, OTP replenishment, session persistence, cross-client

UAT/PHASE2.md — 7 scenarios (WASM, receipts, files, multi-device, HW wallet, groups, history)
UAT/PHASE3.md — 6 scenarios (DNS discovery, key transparency, federation, mutual TLS, gossip)
UAT/PHASE4.md — 10 scenarios (mule identity, pickup, delivery, receipts, dedup, expiry, compression)
UAT/PHASE5.md — 6 scenarios (Bluetooth, LoRa, mDNS, Wi-Fi Direct, USB export, fallback chain)
UAT/PHASE6.md — 3 scenarios (sealed sender, traffic analysis resistance, onion routing)
UAT/PHASE7.md — 8 scenarios (ntfy, DoH, DB encryption, admin CLI, rate limiting, audit, CI, monitoring)

Each test has exact commands to run and checkboxes for pass/fail.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 08:01:36 +04:00

3.8 KiB

Phase 2 — User Acceptance Testing

Phase 2 is NOT YET IMPLEMENTED. This is a pre-written test plan.

Prerequisites

  • Phase 1 UAT fully passing
  • WASM toolchain installed (wasm-pack)
  • Two devices or VMs for multi-device testing

1. WASM Build (Web-CLI Interop)

cd warzone/crates/warzone-protocol
wasm-pack build --target web
  • WASM build succeeds
  • Web client loads WASM module
  • Web client uses X25519 + ChaCha20 (same as CLI)
  • Web → CLI: message sent from browser, decrypted by CLI recv
  • CLI → Web: message sent from CLI, decrypted in browser
  • Bidirectional conversation works across web and CLI

2. Delivery Receipts

Alice sends to Bob:

  • Alice's UI shows "sent" checkmark (✓) after server accepts
  • When Bob's client polls and receives, server generates delivery receipt
  • Alice's UI updates to "delivered" (✓✓)
  • When Bob reads/decrypts, Bob's client sends read receipt
  • Alice's UI updates to "read" (✓✓ blue/colored)

Offline Bob:

  • Alice sends while Bob is offline
  • "sent" (✓) shown immediately
  • Bob comes online, polls → "delivered" (✓✓) on Alice's side
  • Receipts themselves are E2E encrypted

3. File Transfer

CLI:

/file /path/to/document.pdf
  • File is chunked, encrypted, and sent
  • Recipient sees "[file: document.pdf (1.2 MB)]"
  • /save or auto-download saves to disk
  • File integrity check (hash matches)
  • Files up to 10 MB work
  • Progress shown during transfer

Web:

  • File upload button in chat
  • File encrypted and sent
  • Recipient gets download link
  • Downloaded file is correct

4. Multi-Device

Setup: Alice on two devices (same seed):

# Device 1
cargo run --bin warzone-client -- init
# Note mnemonic

# Device 2
WARZONE_HOME=/tmp/alice2 cargo run --bin warzone-client -- recover <mnemonic>
WARZONE_HOME=/tmp/alice2 cargo run --bin warzone-client -- register -s http://localhost:7700
  • Both devices have same fingerprint
  • Bob sends to Alice's fingerprint
  • Device 1 receives and decrypts
  • Device 2 receives and decrypts (separate session)
  • Messages sent from Device 1 are visible on Device 2 (via sync)
  • Device list shown on server: GET /v1/devices/<fingerprint>

5. Hardware Wallet Delegation

Connect Ledger/Trezor:

cargo run --bin warzone-client -- hw-delegate
  • Detects hardware wallet via USB
  • Shows "Sign delegation certificate on device"
  • User confirms on hardware wallet
  • Session key generated, delegation cert stored
  • Subsequent operations use session key (no wallet needed)
  • After 30 days, prompts for re-delegation

Without hardware wallet (session key only):

  • All operations work using cached session key
  • No USB prompts during normal chat

6. Group Management

Kick member:

/gkick @troublemaker
  • Member removed from group
  • Sender Keys rotated for remaining members
  • Kicked member can no longer decrypt new messages

Leave group:

/gleave ops
  • You are removed
  • Remaining members rotate keys

Group info:

/ginfo ops
  • Shows: name, creator, member list, creation date

7. Message History Persistence

  • Close and reopen TUI → previous messages still shown
  • History stored in local sled DB
  • /history 50 shows last 50 messages
  • History is encrypted at rest (tied to seed)

Summary

# Feature Result
1 WASM web-CLI interop
2 Delivery receipts
3 File transfer
4 Multi-device
5 Hardware wallet delegation
6 Group management
7 Message history

Tester: _______________ Date: _______________