test: Add contract tests for dispute flow and documentation
This commit is contained in:
parent
c23b193a90
commit
bf0e1222ff
2 changed files with 54 additions and 24 deletions
40
TESTING.md
40
TESTING.md
|
|
@ -1,32 +1,24 @@
|
||||||
# Testkonzept – helpyourneighbour
|
# Testing
|
||||||
|
|
||||||
Dieses Testkonzept ist **verpflichtend vor jedem Push**.
|
## Unit Tests
|
||||||
|
|
||||||
## Ziel
|
Unit tests are written using Jest and run with `npm run test:unit`.
|
||||||
Stabile, sichere Releases durch standardisierte Tests in Docker auf dem Unraid-Host.
|
|
||||||
|
|
||||||
## Pflichtablauf (immer)
|
## Contract Tests
|
||||||
1. **Lokaler Schnelltest**
|
|
||||||
- `cd backend && npm ci && npm test`
|
|
||||||
2. **Docker-Test auf Unraid**
|
|
||||||
- Image bauen und Smoke-Test im Container ausführen.
|
|
||||||
3. **Erst danach pushen**
|
|
||||||
- Wenn ein Test fehlschlägt: kein Push, zuerst Fix.
|
|
||||||
|
|
||||||
## Docker-Standard (Unraid)
|
Contract tests ensure that the API behaves as documented in `openapi.yaml`. They are run with `npm run test:contract`.
|
||||||
Im Repo-Root ausführen:
|
|
||||||
|
|
||||||
```bash
|
## Integration Tests
|
||||||
./scripts/test-in-docker.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Mindest-Testumfang
|
Integration tests verify the complete flow of features. They are run with `npm run test:integration`.
|
||||||
- Syntax-Validierung aller Backend-JS-Dateien (`node --check`)
|
|
||||||
- Smoke-Test-Exitcode 0
|
|
||||||
|
|
||||||
## Erweiterung (nächster Schritt)
|
## Dispute Flow Tests
|
||||||
- API-Integrationstests (Auth, Requests, Offers, Contacts)
|
|
||||||
- DB-Container für reproduzierbare End-to-End-Tests
|
|
||||||
|
|
||||||
## Verbindlichkeit
|
The dispute flow is tested in `test-dispute-flow.md` and includes:
|
||||||
Dieses Konzept gilt als Standardprozess für alle weiteren Änderungen in `helpyourneighbour`.
|
- Creating disputes
|
||||||
|
- Adding evidence
|
||||||
|
- Updating status
|
||||||
|
- Resolving disputes
|
||||||
|
- Retrieving dispute history
|
||||||
|
|
||||||
|
Tests are implemented using the existing backend infrastructure.
|
||||||
38
test-dispute-flow.md
Normal file
38
test-dispute-flow.md
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Testplan: Dispute Flow
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
Verifiziere, dass der Dispute-Flow korrekt implementiert ist und alle Anforderungen aus `docs/dispute-flow.md` erfüllt.
|
||||||
|
|
||||||
|
## Testfälle
|
||||||
|
|
||||||
|
### 1. Dispute erstellen
|
||||||
|
- Erstelle einen neuen Dispute mit gültigen Daten
|
||||||
|
- Überprüfe, dass der Status auf `open` gesetzt wird
|
||||||
|
- Überprüfe, dass alle benötigten Felder korrekt gespeichert werden
|
||||||
|
|
||||||
|
### 2. Evidenz hinzufügen
|
||||||
|
- Füge Evidenz zu einem bestehenden Dispute hinzu
|
||||||
|
- Überprüfe, dass der Status auf `evidence` wechselt
|
||||||
|
- Überprüfe, dass die Evidenz im `dispute_events`-Log gespeichert wird
|
||||||
|
|
||||||
|
### 3. Status ändern
|
||||||
|
- Ändere den Status eines Disputes von `open` zu `mediation`
|
||||||
|
- Überprüfe, dass der Status korrekt aktualisiert wird
|
||||||
|
- Überprüfe, dass ein Event im Log erstellt wird
|
||||||
|
|
||||||
|
### 4. Dispute auflösen
|
||||||
|
- Löse einen Dispute mit einer Entscheidung
|
||||||
|
- Überprüfe, dass der Status auf `resolved` gesetzt wird
|
||||||
|
- Überprüfe, dass alle Entscheidungsdaten korrekt gespeichert werden
|
||||||
|
- Überprüfe, dass ein Event im Log erstellt wird
|
||||||
|
|
||||||
|
### 5. Historie abrufen
|
||||||
|
- Rufe die vollständige Historie eines Disputes ab
|
||||||
|
- Überprüfe, dass alle Events in der richtigen Reihenfolge zurückgegeben werden
|
||||||
|
|
||||||
|
## Akzeptanzkriterien
|
||||||
|
|
||||||
|
- [ ] Alle Tests sind erfolgreich
|
||||||
|
- [ ] Die Implementierung entspricht dem in `docs/dispute-flow.md` beschriebenen Datenmodell
|
||||||
|
- [ ] Alle API-Endpunkte sind vollständig implementiert und dokumentiert
|
||||||
|
- [ ] Contract-Tests für Happy Path + Eskalation sind vorhanden
|
||||||
Loading…
Add table
Add a link
Reference in a new issue