added e2e testsuite
This commit is contained in:
139
custom/scripts/E2E_TEST_RESULTS.md
Normal file
139
custom/scripts/E2E_TEST_RESULTS.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# End-to-End Test Ergebnisse
|
||||
|
||||
## Test-Übersicht
|
||||
|
||||
Das E2E-Test-Framework wurde erfolgreich implementiert und getestet!
|
||||
|
||||
## ✅ Erfolgreich getestete Entities
|
||||
|
||||
### CMietobjekt
|
||||
- ✓ Create: Mietobjekt mit Adresse erstellen
|
||||
- ✓ Read: Datensatz abrufen
|
||||
- ✓ Update: Lage-Feld aktualisieren
|
||||
- ✓ Delete: Datensatz löschen
|
||||
|
||||
### CVmhMietverhältnis
|
||||
- ✓ Create: Mietverhältnis mit allen Pflichtfeldern
|
||||
- ✓ Read: Datensatz validieren
|
||||
- ✓ Update: Miete aktualisieren
|
||||
- ✓ Delete: Datensatz löschen
|
||||
- ✓ Relationship: Verknüpfung mit CMietobjekt über `vmhMietobjektId`
|
||||
|
||||
### CBeteiligte
|
||||
- ✓ Create: Person mit Namen und Adresse
|
||||
- ✓ Read: Personendaten abrufen
|
||||
- ✓ Update: Telefonnummer ändern
|
||||
- ✓ Delete: Person löschen
|
||||
|
||||
### CVmhRäumungsklage
|
||||
- ✓ Create: Räumungsklage erstellen
|
||||
- ✓ Read: Datensatz validieren
|
||||
- ✓ Update: Gegenstandswert ändern
|
||||
- ✓ Delete: Datensatz löschen
|
||||
|
||||
## 🔒 Entities mit Permissions-Beschränkung
|
||||
|
||||
### CKündigung
|
||||
- User `dev-test` hat keine Berechtigung (403 Forbidden)
|
||||
- Betrifft: READ, CREATE, UPDATE, DELETE
|
||||
|
||||
### CMietinkasso
|
||||
- User `dev-test` hat keine Berechtigung (403 Forbidden)
|
||||
- Betrifft: READ, CREATE, UPDATE, DELETE
|
||||
|
||||
### Ursache
|
||||
Diese Entities sind durch ACL (Access Control Lists) gesperrt. Mögliche Gründe:
|
||||
1. **Role-Einstellungen**: Der User ist einer Role zugeordnet, die diese Entities nicht erlaubt
|
||||
2. **Team-Beschränkungen**: Entities sind team-spezifisch eingeschränkt
|
||||
3. **Custom ACL-Implementierung**: Möglicherweise gibt es Custom ACL-Klassen
|
||||
|
||||
### Behebung
|
||||
In der EspoCRM Admin-Oberfläche:
|
||||
1. **Administration → Roles** → User's Role auswählen
|
||||
2. Bei `CKündigung` und `CMietinkasso` auf "Enabled" setzen
|
||||
3. Permissions auf "All" oder mindestens "Create: Yes, Read: All, Edit: All, Delete: All" setzen
|
||||
|
||||
Alternativ:
|
||||
- **Administration → Users** → `dev-test` → Role/Teams prüfen
|
||||
- Sicherstellen, dass der User Admin-Rechte hat oder eine Role mit Full Access
|
||||
|
||||
## 📊 Test-Statistik (letzter Lauf)
|
||||
|
||||
```
|
||||
✅ CBeteiligte: 3/3 tests passed (100%)
|
||||
🔒 CKndigung: 0/1 tests (Permission denied)
|
||||
🔒 CMietinkasso: 0/1 tests (Permission denied)
|
||||
✅ CMietobjekt: 3/3 tests passed (100%)
|
||||
✅ CVmhMietverhltnis: 3/3 tests passed (100%)
|
||||
✅ CVmhRumungsklage: 3/3 tests passed (100%)
|
||||
|
||||
Total: 12/14 tests executable
|
||||
2 tests blocked by permissions
|
||||
Time: ~0.2s
|
||||
```
|
||||
|
||||
## 🎯 Framework-Features
|
||||
|
||||
### Implementiert
|
||||
- ✅ CRUD-Tests für alle wichtigen Entities
|
||||
- ✅ Relationship-Tests (belongsTo)
|
||||
- ✅ Automatisches Cleanup (keine Test-Daten bleiben zurück)
|
||||
- ✅ Permission-aware (erkennt 403-Fehler)
|
||||
- ✅ Detailliertes Reporting
|
||||
- ✅ Fehlerbehandlung mit Context
|
||||
- ✅ Zeiterfassung pro Test
|
||||
|
||||
### Bereit für Erweiterung
|
||||
- 📝 Weitere Entities hinzufügen (siehe [E2E_TESTS_README.md](E2E_TESTS_README.md))
|
||||
- 🔗 Mehr Relationship-Tests (hasMany, manyToMany)
|
||||
- ✅ Validierungs-Tests für berechnete Felder
|
||||
- 📧 Workflow-Tests (wenn freigeschaltet)
|
||||
|
||||
## 🚀 Verwendung
|
||||
|
||||
### Standard-Test
|
||||
```bash
|
||||
./run_e2e_tests.sh
|
||||
```
|
||||
|
||||
### Mit Python direkt
|
||||
```bash
|
||||
python3 e2e_tests.py
|
||||
```
|
||||
|
||||
### Einzelne Entity testen
|
||||
```python
|
||||
from e2e_tests import CMietobjektTest
|
||||
from espocrm_api_client import EspoCRMAPIClient
|
||||
from e2e_tests import TestTracker
|
||||
|
||||
client = EspoCRMAPIClient(...)
|
||||
tracker = TestTracker()
|
||||
test = CMietobjektTest(client, tracker)
|
||||
test.run_full_test()
|
||||
```
|
||||
|
||||
## 📁 Dateien
|
||||
|
||||
- `espocrm_api_client.py` - REST API Client
|
||||
- `e2e_tests.py` - Test-Framework mit allen Entity-Tests
|
||||
- `run_e2e_tests.sh` - Shell-Wrapper
|
||||
- `E2E_TESTS_README.md` - Vollständige Dokumentation
|
||||
|
||||
## ✨ Nächste Schritte
|
||||
|
||||
1. **Permissions klären** für CKündigung und CMietinkasso
|
||||
2. **Weitere Entities** hinzufügen:
|
||||
- CAdressen
|
||||
- CBankverbindungen
|
||||
- CDokumente
|
||||
- CVmhErstgespraech
|
||||
3. **hasMany Relationships** testen (benötigt API-Research)
|
||||
4. **CI/CD Integration** (GitHub Actions, GitLab CI)
|
||||
5. **Performance-Tests** mit größeren Datenmengen
|
||||
|
||||
---
|
||||
|
||||
**Status**: ✅ Framework vollständig funktionsfähig
|
||||
**Test Coverage**: 4/6 Custom Entities (66.7%)
|
||||
**Success Rate**: 100% für zugängliche Entities
|
||||
Reference in New Issue
Block a user