From a2a5c02f87cfd8150f13ff4bfff52c96bbcd5056 Mon Sep 17 00:00:00 2001 From: Daniel Bedeleanu Date: Wed, 22 Apr 2026 19:44:05 +0300 Subject: [PATCH] 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 --- .planning/TESTING_PLAN.md | 222 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 .planning/TESTING_PLAN.md diff --git a/.planning/TESTING_PLAN.md b/.planning/TESTING_PLAN.md new file mode 100644 index 00000000..c9ebe1ac --- /dev/null +++ b/.planning/TESTING_PLAN.md @@ -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*