diff --git a/docs/test-bugs.md b/docs/test-bugs.md new file mode 100644 index 0000000..1d6ce2c --- /dev/null +++ b/docs/test-bugs.md @@ -0,0 +1,92 @@ +# LeoCRM — Test Bug-Sammlung + +> **Erstellt:** 2026-08-21 +> **Regel:** Alle Fehler werden hier gesammelt. KEINE Fixes während des Testens. +> **Fixes werden erst nach Abschluss aller Tests gesammelt durchgeführt.** + +--- + +## Bug-Format + +Jeder Bug wird wie folgt dokumentiert: + +``` +### BUG-XXX: +- **Kategorie:** API | Frontend | DB | Rechte | Security | Plugin | Performance +- **Modul:** +- **Endpoint:** +- **Erwartet:** +- **Tatsächlich:** +- **Status Code:** +- **Response:** +- **Schweregrad:** Critical | High | Medium | Low +- **Getestet von:** Admin | Sales | Reader +- **Trace-ID:** +``` + +--- + +## Gefundene Bugs + +### BUG-001: Tag Delete 500 — current_user["id"] KeyError +- **Kategorie:** API +- **Modul:** Tags +- **Endpoint:** DELETE /api/v1/tags/{tag_id} +- **Erwartet:** 204 No Content +- **Tatsächlich:** 500 Internal Server Error +- **Status Code:** 500 +- **Response:** `{"code":"internal_error","detail":"Internal server error","trace_id":"7d902485"}` +- **Schweregrad:** High +- **Getestet von:** Admin +- **Trace-ID:** 7d902485 +- **Ursache:** `current_user["id"]` in `tags/routes.py:282` — Key heißt `user_id` nicht `id` +- **Status:** ✅ Bereits gefixt (Commit c02fc75) + +### BUG-002: AI Agents list 500 — apply_visibility_filter ImportError +- **Kategorie:** API +- **Modul:** AI Assistant +- **Endpoint:** GET /api/v1/ai/agents +- **Erwartet:** 200 mit Agent-Liste +- **Tatsächlich:** 500 Internal Server Error +- **Status Code:** 500 +- **Response:** `{"code":"internal_error","detail":"Internal server error"}` +- **Schweregrad:** High +- **Getestet von:** Admin +- **Ursache:** `apply_visibility_filter` nicht importiert in `ai_assistant/routes.py` +- **Status:** ✅ Bereits gefixt (Commit d3618d8) + +### BUG-003: create_provider/model/preset/agent 500 — flush vor refresh +- **Kategorie:** API +- **Modul:** AI Assistant +- **Endpoint:** POST /api/v1/ai/providers, /models, /presets, /agents, /folders +- **Erwartet:** 201 Created +- **Tatsächlich:** 500 Internal Server Error +- **Status Code:** 500 +- **Schweregrad:** High +- **Getestet von:** Admin +- **Ursache:** `db.commit()` vor `db.refresh()` — muss `db.flush()` vor `db.refresh()` sein +- **Status:** ✅ Bereits gefixt (Commit 37f6868) + +### BUG-004: OwnedMixin Import fehlt in unified_search/models.py +- **Kategorie:** Code-Logik +- **Modul:** Unified Search +- **Erwartet:** Import funktioniert +- **Tatsächlich:** `NameError: name 'OwnedMixin' is not defined` +- **Schweregrad:** Medium +- **Ursache:** `OwnedMixin` verwendet aber nicht importiert +- **Status:** ✅ Bereits gefixt (Commit f0bf53f) + +### BUG-005: Test-Dateien importieren entfernte AI Models +- **Kategorie:** Tests +- **Modul:** test_ai_proactive, test_ai_copilot, conftest, test_permission_system_live +- **Erwartet:** Tests laufen ohne ImportError +- **Tatsächlich:** ImportError für AIChatSession, AIChatMessage, AIConversation, AIMessage +- **Schweregrad:** Low +- **Ursache:** Models wurden in Phase 2 entfernt, Test-Dateien nicht aktualisiert +- **Status:** ✅ Bereits gefixt (Commit f0bf53f) + +--- + +## Neue Bugs (während Test-Ausführung gefunden) + +*Wird während der Test-Ausführung gefüllt.* diff --git a/docs/test-plan-complete.md b/docs/test-plan-complete.md index 1e04958..f7fe84a 100644 --- a/docs/test-plan-complete.md +++ b/docs/test-plan-complete.md @@ -596,6 +596,205 @@ --- +## 12. Frontend Component Tests (169 Components) +- [ ] Jede Component rendert ohne Fehler +- [ ] Props werden korrekt übergeben +- [ ] State changes funktionieren +- [ ] Event handlers reagieren +- [ ] Loading states zeigen Skeleton +- [ ] Error states zeigen Fehlermeldung +- [ ] Empty states zeigen EmptyState + +## 13. Frontend Store Tests (19 Stores) +- [ ] authStore — Login/Logout/Session state +- [ ] commStore — Conversations/Messages/WebSocket +- [ ] calendarStore — Calendars/Events/Visibility +- [ ] uiStore — Sidebar/Theme/Notifications +- [ ] pluginStore — Plugin activation/deactivation +- [ ] workspaceStore — Workspace switching +- [ ] windowStore — Window management +- [ ] themeStore — Theme switching +- [ ] commandPaletteStore — Command palette +- [ ] onboardingStore — Onboarding tour + +## 14. Frontend Hook Tests (11 Hooks) +- [ ] useAuth — Auth state management +- [ ] usePermission — Permission checking +- [ ] useCommWebSocket — WebSocket connection +- [ ] useAIContext — AI context building +- [ ] useWorkspace — Workspace management +- [ ] useUserPermissions — Permission loading +- [ ] useUserPreferences — Preferences loading +- [ ] useCommandPalette — Command palette +- [ ] useOnlineStatus — Online/offline detection +- [ ] useAIUIControl — AI UI control +- [ ] useTenant — Tenant context + +## 15. Frontend API Client Tests (52 Clients) +- [ ] Jeder API Client function testen +- [ ] Request/Response handling +- [ ] Error handling +- [ ] Retry logic +- [ ] Cache invalidation (TanStack Query) +- [ ] Optimistic updates + +## 16. WebSocket Tests +- [ ] `/api/v1/comm/ws` — Chat WebSocket +- [ ] Connection/Disconnection +- [ ] Message broadcasting +- [ ] Room joining/leaving +- [ ] Reconnection on disconnect + +## 17. Background Worker Tests (ARQ) +- [ ] Mail IMAP Sync Job +- [ ] Notification Job +- [ ] Workflow Execution Job +- [ ] Backup Job +- [ ] Outbox Delivery Job +- [ ] Worker Queue processing +- [ ] Job retry logic +- [ ] Job failure handling + +## 18. Plugin Lifecycle Tests +- [ ] Plugin aktivieren → Routes registriert +- [ ] Plugin deaktivieren → Routes entfernt +- [ ] Plugin neu aktivieren → State wiederhergestellt +- [ ] Plugin Migration Runner +- [ ] Plugin Signature Validation +- [ ] Plugin Quarantine Mode + +## 19. Workflow Engine Tests +- [ ] Workflow erstellen mit Steps +- [ ] Workflow ausführen → Instance erstellt +- [ ] Step Handler: contact_create +- [ ] Step Handler: task_create +- [ ] Step Handler: send_notification +- [ ] Step Handler: send_mail +- [ ] Decision Steps (if/else) +- [ ] Loop Steps +- [ ] Parallel Steps +- [ ] Workflow Pause/Resume +- [ ] Workflow Cancel + +## 20. AI System Tests (detailliert) +- [ ] AI Provider CRUD +- [ ] AI Model CRUD +- [ ] AI Preset CRUD +- [ ] AI Agent CRUD +- [ ] AI Agent mit Tools +- [ ] AI Streaming (SSE format validieren) +- [ ] AI Streaming mit langen Antworten +- [ ] AI Streaming mit Tool Calls +- [ ] AI Memory (speichern/abrufen/löschen) +- [ ] AI Context Builder +- [ ] AI Permission checks +- [ ] AI Cost tracking +- [ ] AI Rate limiting + +## 21. Mail System Tests (detailliert) +- [ ] IMAP Sync (neue E-Mails abrufen) +- [ ] IMAP Sync (gelöschte E-Mails synchronisieren) +- [ ] SMTP Senden (mit Anhang) +- [ ] SMTP Senden (an mehrere Empfänger) +- [ ] Mail Ordner erstellen (IMAP) +- [ ] Mail Ordner umbenennen +- [ ] Mail als gelesen/ungelesen markieren +- [ ] Mail weiterleiten +- [ ] Mail mit Contact verknüpfen +- [ ] Mail Search + +## 22. DMS Tests (detailliert) +- [ ] Datei Upload (PDF, DOCX, XLSX, Bild) +- [ ] Datei Download +- [ ] Datei Vorschau (PDF viewer) +- [ ] Ordner erstellen +- [ ] Datei verschieben +- [ ] Datei umbenennen +- [ ] Datei löschen (Trash) +- [ ] Trash wiederherstellen +- [ ] Datei teilen (Share Link) +- [ ] Datei Berechtigungen +- [ ] Dedup (gleiche Datei erkennen) +- [ ] Volltext-Suche in Dateien + +## 23. Calendar Tests (detailliert) +- [ ] Kalender erstellen (verschiedene Farben) +- [ ] Termin erstellen (einmalig) +- [ ] Termin erstellen (wiederkehrend: täglich/wöchentlich/monatlich) +- [ ] Termin bearbeiten +- [ ] Termin löschen +- [ ] Kalender teilen (mit User/Group) +- [ ] ICS Export +- [ ] ICS Import +- [ ] Kalender Visibility Toggle +- [ ] Drag & Drop Termin verschieben + +## 24. Search Tests (alle 14 Provider) +- [ ] Contact Search Provider +- [ ] Company Search Provider +- [ ] DMS Search Provider +- [ ] Wiki Search Provider +- [ ] AI Chat Search Provider (comm_messages) +- [ ] Tag Search Provider +- [ ] Mail Search Provider +- [ ] Calendar Search Provider +- [ ] Task Search Provider +- [ ] Audit Search Provider +- [ ] Notification Search Provider +- [ ] Workflow Search Provider +- [ ] Agent Search Provider +- [ ] Report Search Provider + +## 25. Compliance Tests +- [ ] Incident erstellen +- [ ] Incident Status ändern +- [ ] Incident Report generieren +- [ ] Compliance Check +- [ ] GDPR Delete (hard delete mit ?gdpr=true) +- [ ] Audit Trail Integrität + +## 26. Backup/Restore Tests +- [ ] Backup erstellen (pg_dump) +- [ ] Backup mit Files +- [ ] Backup auf S3 +- [ ] Backup auf Nextcloud +- [ ] Restore (DB + Files) +- [ ] Backup Retention + +## 27. MCP (Model Context Protocol) Tests +- [ ] MCP Server starten +- [ ] MCP Client verbinden +- [ ] MCP Tool aufrufen +- [ ] MCP Resource abrufen + +## 28. Dedup/Merge Tests +- [ ] Duplicate Contacts erkennen +- [ ] Merge Contacts +- [ ] Merge Preview +- [ ] Merge Rollback + +## 29. Import/Export Tests +- [ ] Contacts CSV Import +- [ ] Contacts CSV Export +- [ ] Companies Import +- [ ] Tasks Import +- [ ] Mail Export + +## 30. Custom Fields Tests +- [ ] Custom Field Definition erstellen (text/number/date/select/multiselect) +- [ ] Custom Field zu Contact hinzufügen +- [ ] Custom Field validieren +- [ ] Custom Field suchen/filtern + +## 31. Onboarding/Tour Tests +- [ ] Onboarding Tour starten +- [ ] Tour Steps durchlaufen +- [ ] Tour abschließen +- [ ] Tour überspringen +- [ ] Welcome Dialog + +--- + ## Ausführungs-Reihenfolge 1. Smoke Tests (1.) — schnell, prüft ob System läuft @@ -629,5 +828,6 @@ - **Datenbank-Tests via SSH → psql auf Produktions-DB** - **Frontend-Tests mit vitest + Playwright + Browser** - **Test-Daten werden nach Tests gelöscht** -- **Jeder Bug wird sofort gefixt und deployt** +- **Alle Fehler werden in `docs/test-bugs.md` gesammelt** — KEINE Fixes während des Testens - **Ergebnisse werden dokumentiert** +- **Fixes werden erst nach Abschluss aller Tests gesammelt durchgeführt**