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

164 lines
3.8 KiB
Markdown

# 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)
```bash
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):**
```bash
# 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:**
```bash
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:** _______________