docs: add comprehensive Phase 6 testing plan for next session
- 5 test phases covering all changes - Priority levels for staged execution - Success/failure criteria - Ready for next session execution - Handover documentation created
This commit is contained in:
222
.planning/TESTING_PLAN.md
Normal file
222
.planning/TESTING_PLAN.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# Phase 6 Standalone Deployment - Comprehensive Testing Plan
|
||||
|
||||
## Scope of Changes
|
||||
|
||||
**Frontend (4 files):**
|
||||
- ✅ Toast.tsx (new component)
|
||||
- ⚠️ db.ts (id type - FIXED)
|
||||
- ⚠️ SearchModal.tsx (type change)
|
||||
- ⚠️ QuantityAdjustmentModal.tsx (type change)
|
||||
|
||||
**Backend (1 file):**
|
||||
- ⚠️ requirements.txt (openpyxl version)
|
||||
|
||||
**Config & Deployment (3 files):**
|
||||
- ✅ inventory.env (added DATA_DIR, LOGS_DIR, LOG_LEVEL)
|
||||
- ✅ start_servers.py (new Python launcher)
|
||||
- ✅ Caddyfile.standalone (new reverse proxy config)
|
||||
|
||||
**Documentation (1 file):**
|
||||
- ✅ STANDALONE_DEPLOYMENT.md
|
||||
|
||||
---
|
||||
|
||||
## Testing Plan
|
||||
|
||||
### Phase 1: Backend Functionality Tests (CRITICAL)
|
||||
**Why:** Backend may be broken by openpyxl version change
|
||||
|
||||
**Tests to run:**
|
||||
1. ✅ **Delete Item** (was broken, now fixed - MUST VERIFY)
|
||||
- Create item in inventory
|
||||
- Click delete
|
||||
- Confirm deletion works
|
||||
- Verify item gone from UI and database
|
||||
|
||||
2. ✅ **Export Snapshot** (uses openpyxl)
|
||||
- Go to Admin panel
|
||||
- Click "Export Snapshot"
|
||||
- Verify Excel file downloads
|
||||
- Open Excel file - verify data intact
|
||||
|
||||
3. ✅ **Export Audit Trail** (uses openpyxl)
|
||||
- Go to Admin panel
|
||||
- Click "Export Audit Trail"
|
||||
- Verify Excel file downloads with all columns
|
||||
|
||||
4. ✅ **Search Items** (SearchModal type changed)
|
||||
- Press Ctrl+K to search
|
||||
- Search for an item
|
||||
- Click result to select
|
||||
- Verify item loads correctly
|
||||
|
||||
5. ✅ **Quantity Adjustment** (type changed)
|
||||
- Select item from list
|
||||
- Adjust quantity with +/- buttons
|
||||
- Save changes
|
||||
- Verify quantity updated
|
||||
|
||||
### Phase 2: Frontend UI Tests (HIGH)
|
||||
**Why:** Toast component is new, type changes affect components
|
||||
|
||||
**Tests to run:**
|
||||
1. ✅ **Toast Notifications**
|
||||
- Perform any successful action (add/edit/delete)
|
||||
- Verify success toast appears
|
||||
- Verify it auto-dismisses after 3 seconds
|
||||
|
||||
2. ✅ **Error Messages**
|
||||
- Try delete without confirmation
|
||||
- Perform operation that fails
|
||||
- Verify error toast appears
|
||||
|
||||
3. ✅ **All CRUD Operations**
|
||||
- Create new item
|
||||
- Edit item details
|
||||
- Update category
|
||||
- Delete item
|
||||
- Verify all work without errors in console
|
||||
|
||||
### Phase 3: Deployment Tests (CRITICAL)
|
||||
**Why:** New deployment mode must work reliably
|
||||
|
||||
**Tests to run:**
|
||||
|
||||
#### 3.1 Standalone Foreground Mode
|
||||
```bash
|
||||
python3 start_servers.py
|
||||
```
|
||||
- ✅ All 3 services start (backend, frontend, caddy)
|
||||
- ✅ No errors in console
|
||||
- ✅ All log files created (backend.log, frontend.log, caddy.log)
|
||||
- ✅ Access http://localhost:8916 (backend)
|
||||
- ✅ Access http://localhost:8917 (frontend)
|
||||
- ✅ Access https://localhost:8918 (backend SSL)
|
||||
- ✅ Access https://localhost:8919 (frontend SSL)
|
||||
- ✅ Browser accepts self-signed certificate
|
||||
- ✅ Ctrl+C stops all services cleanly
|
||||
|
||||
#### 3.2 Standalone Background Mode
|
||||
```bash
|
||||
python3 start_servers.py start
|
||||
```
|
||||
- ✅ Services start in background
|
||||
- ✅ PID file created (.servers.pid)
|
||||
- ✅ Can access services immediately
|
||||
- ✅ No terminal output after start
|
||||
|
||||
#### 3.3 Status Command
|
||||
```bash
|
||||
python3 start_servers.py status
|
||||
```
|
||||
- ✅ Shows all 3 services running
|
||||
- ✅ Shows correct PIDs
|
||||
- ✅ Shows correct ports (HTTP and HTTPS)
|
||||
- ✅ Shows correct log file paths
|
||||
|
||||
#### 3.4 Stop Command
|
||||
```bash
|
||||
python3 start_servers.py stop
|
||||
```
|
||||
- ✅ All services terminate gracefully
|
||||
- ✅ PID file removed
|
||||
- ✅ Ports release (netstat shows ports free)
|
||||
|
||||
#### 3.5 Restart Command
|
||||
```bash
|
||||
python3 start_servers.py restart
|
||||
```
|
||||
- ✅ Services stop then start
|
||||
- ✅ New PIDs assigned
|
||||
- ✅ All services responsive immediately
|
||||
|
||||
### Phase 4: Network/SSL Tests (HIGH)
|
||||
**Why:** Caddy proxy added complexity
|
||||
|
||||
**Tests to run:**
|
||||
1. ✅ **Access via localhost**
|
||||
- http://localhost:8916 (backend)
|
||||
- http://localhost:8917 (frontend)
|
||||
- https://localhost:8918 (backend SSL)
|
||||
- https://localhost:8919 (frontend SSL)
|
||||
|
||||
2. ✅ **Access via IP address**
|
||||
- http://192.168.84.131:8916
|
||||
- http://192.168.84.131:8917
|
||||
- https://192.168.84.131:8918 (self-signed warning - accept)
|
||||
- https://192.168.84.131:8919 (self-signed warning - accept)
|
||||
|
||||
3. ✅ **HTTPS Certificate**
|
||||
- Certificate generates on first HTTPS access
|
||||
- Certificate is self-signed (ok for dev)
|
||||
- No errors accessing multiple times
|
||||
|
||||
4. ✅ **Proxy Headers**
|
||||
- Application receives correct X-Forwarded headers
|
||||
- Frontend renders correctly with forwarded proto/host
|
||||
|
||||
### Phase 5: Data Persistence Tests (MEDIUM)
|
||||
**Why:** Changed paths for data/logs directories
|
||||
|
||||
**Tests to run:**
|
||||
1. ✅ **Data Directory**
|
||||
- Data saved to ./data/ directory
|
||||
- Database file created at ./data/inventory.db
|
||||
- Data persists across restarts
|
||||
|
||||
2. ✅ **Logs Directory**
|
||||
- Logs written to ./logs/ directory
|
||||
- Separate log files for backend, frontend, caddy
|
||||
- Logs don't grow unbounded
|
||||
|
||||
---
|
||||
|
||||
## Test Execution Schedule
|
||||
|
||||
**Priority 1 (MUST PASS):**
|
||||
- Phase 1: Delete Item
|
||||
- Phase 1: Export operations
|
||||
- Phase 3: All deployment modes
|
||||
- Phase 4: SSL access via IP
|
||||
|
||||
**Priority 2 (SHOULD PASS):**
|
||||
- Phase 1: Search & Quantity Adjustment
|
||||
- Phase 2: Toast notifications
|
||||
- Phase 4: HTTPS certificate
|
||||
|
||||
**Priority 3 (NICE TO HAVE):**
|
||||
- Phase 2: Full CRUD
|
||||
- Phase 5: Data persistence
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
✅ **PASS if:**
|
||||
- All Phase 1 tests pass (backend functionality)
|
||||
- All Phase 3 tests pass (deployment modes)
|
||||
- All Phase 4 tests pass (SSL/network)
|
||||
- No new errors in browser console
|
||||
- No uncaught exceptions in logs
|
||||
|
||||
❌ **FAIL if:**
|
||||
- Any CRUD operation fails
|
||||
- Deployment modes don't start/stop cleanly
|
||||
- SSL certificates fail to generate
|
||||
- Static assets (CSS/JS) don't load
|
||||
- Database operations fail
|
||||
|
||||
---
|
||||
|
||||
## Approval Requested
|
||||
|
||||
**Should I execute this testing plan?**
|
||||
- [ ] Yes, run all tests
|
||||
- [ ] Yes, run Priority 1 only
|
||||
- [ ] No, modify plan first
|
||||
|
||||
---
|
||||
|
||||
*Generated: 2026-04-22*
|
||||
*Scope: All Phase 6 changes*
|
||||
*Estimated time: 30-45 minutes for full test*
|
||||
Reference in New Issue
Block a user