- 5 test phases covering all changes - Priority levels for staged execution - Success/failure criteria - Ready for next session execution - Handover documentation created
223 lines
5.7 KiB
Markdown
223 lines
5.7 KiB
Markdown
# 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*
|