sp3-verify-1770325830/.sdlc/features/websocket-chat/qa-plan.md
rdev-worker 42c1444274
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
build: /implement-feature websocket-chat --requirements 'GET /ws upgrades to...
2026-02-05 21:50:17 +00:00

39 lines
1.5 KiB
Markdown

# QA Plan: WebSocket Chat
## Test Scope
### Unit Tests
| Test | File | Description |
|------|------|-------------|
| Config loading | `internal/config/config_test.go` | Verify RedisURL loads from env |
### Integration Tests
| Test | File | Description |
|------|------|-------------|
| WebSocket upgrade | `internal/api/handlers/websocket_test.go` | Verify HTTP→WS upgrade |
| Message broadcast | `internal/api/handlers/websocket_test.go` | Verify messages reach all clients |
| Room isolation | `internal/api/handlers/websocket_test.go` | Verify room messages stay in room |
| Ping/pong | `internal/api/handlers/websocket_test.go` | Verify heartbeat mechanism |
### Manual Tests
| Test | Steps | Expected |
|------|-------|----------|
| Basic chat | 1. Start server<br>2. Connect two wscat clients<br>3. Send message from one | Other client receives message |
| Room chat | 1. Connect clients to `/ws/room1`<br>2. Connect client to `/ws/room2`<br>3. Send to room1 | Only room1 clients receive |
| Disconnect | 1. Connect client<br>2. Kill client<br>3. Check server logs | Clean disconnect logged |
## Acceptance Criteria
- [ ] WebSocket endpoint accessible at `/api/chat-api/ws`
- [ ] Messages broadcast to all connected clients
- [ ] Room-based messaging isolates conversations
- [ ] Connection lifecycle properly managed
## Test Commands
```bash
# Run all Go tests
go test ./services/chat-api/... -v
# Manual WebSocket test
wscat -c ws://localhost:8001/api/chat-api/ws
```