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>
This commit is contained in:
163
warzone/UAT/PHASE2.md
Normal file
163
warzone/UAT/PHASE2.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# 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:** _______________
|
||||
Reference in New Issue
Block a user