6.6 KiB
🧪 Quick Testing Guide
Schnelle Tests aller neuen Features.
Web-Seiten (Browser)
1. Registrierung testen
1. Öffnen Sie http://localhost:8000/register
2. Füllen Sie das Formular aus:
- Name: "Test User"
- Email: "test@example.com"
- Passwort: "TestPass123"
- Passwort wiederholen: "TestPass123"
3. Klicken Sie "Registrieren"
4. Sie sollten zur Startseite umgeleitet werden
5. Öffnen Sie Browser Console → Application → Cookies
6. Der auth_token sollte gespeichert sein
2. Anmeldung testen
1. Öffnen Sie http://localhost:8000/login
2. Geben Sie ein:
- Email: test@example.com
- Passwort: TestPass123
3. Klicken Sie "Anmelden"
4. Sie sollten zur Startseite umgeleitet werden
5. Token wird in localStorage gespeichert
3. Passwort vergessen testen
1. Öffnen Sie http://localhost:8000/login
2. Klicken Sie "Passwort vergessen?"
3. Geben Sie Ihre Email ein: test@example.com
4. Klicken Sie "Token anfordern"
5. Ein Token wird in der Info-Box angezeigt
6. Kopieren Sie den Token
7. Klicken Sie "Zum Zurücksetzen klicken"
8. Geben Sie ein:
- Passwort: NewPass123
- Passwort wiederholen: NewPass123
9. Klicken Sie "Passwort zurücksetzen"
10. Sie werden zur Anmeldungsseite umgeleitet
11. Melden Sie sich mit NewPass123 an
API Tests (Terminal)
1. Login-Test
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"password123"}'
Erwartet: 200 OK mit Token
2. User Profile
TOKEN="1|l5z3Had9t8AiOnP2gAQZ4yb4QcbfZcs3UQihqVNib46e5d77"
curl -X GET http://localhost:8000/api/user/profile \
-H "Authorization: Bearer $TOKEN"
Erwartet: 200 OK mit Benutzerprofil
3. User Stats
curl -X GET http://localhost:8000/api/user/stats \
-H "Authorization: Bearer $TOKEN"
Erwartet: 200 OK mit Statistiken
4. User Favorites
curl -X GET http://localhost:8000/api/user/favorites \
-H "Authorization: Bearer $TOKEN"
Erwartet: 200 OK mit paginierten Events
5. Toggle Favorite
curl -X POST http://localhost:8000/api/user/favorites/1/toggle \
-H "Authorization: Bearer $TOKEN"
Erwartet: 200 OK mit is_favorite Flag
6. Forgot Password
curl -X POST http://localhost:8000/api/auth/forgot-password \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com"}'
Erwartet: 200 OK mit Token
7. Verify Reset Token
TOKEN="xyz123"
curl -X POST http://localhost:8000/api/auth/verify-reset-token \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","token":"'$TOKEN'"}'
Erwartet: 200 OK mit valid:true
8. Reset Password
TOKEN="xyz123"
curl -X POST http://localhost:8000/api/auth/reset-password \
-H "Content-Type: application/json" \
-d '{
"email":"user@example.com",
"token":"'$TOKEN'",
"password":"newPassword123",
"password_confirmation":"newPassword123"
}'
Erwartet: 200 OK mit Success-Meldung
Fehlertest
1. Ungültige Email
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"nonexistent@example.com","password":"password123"}'
Erwartet: 401 Unauthorized
2. Falsches Passwort
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"wrongpassword"}'
Erwartet: 401 Unauthorized
3. Abgelaufener Token
curl -X POST http://localhost:8000/api/auth/verify-reset-token \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","token":"expired-token-from-1-hour-ago"}'
Erwartet: 422 Unprocessable Entity
4. Passwörter stimmen nicht überein
curl -X POST http://localhost:8000/api/auth/reset-password \
-H "Content-Type: application/json" \
-d '{
"email":"user@example.com",
"token":"valid-token",
"password":"newPassword123",
"password_confirmation":"differentPassword123"
}'
Erwartet: 422 Validation Error
Demo-Benutzer
Die folgenden Benutzer sind nach php artisan migrate:fresh --seed verfügbar:
Email: user@example.com
Password: password123
Role: user
Email: organizer@example.com
Password: password123
Role: organizer
Email: admin@example.com
Password: password123
Role: admin
Datenbank Reset
Wenn Sie die Datenbank zurücksetzen möchten:
cd /Users/meinholdc/Entwicklung/Veranstaltungen-APP
php artisan migrate:fresh --seed
Dies:
- Löscht alle Tabellen
- Führt alle Migrationen erneut aus
- Lädt Seeders (erstellt Demo-Benutzer und Events)
Browser DevTools Tipps
Tokens anzeigen
// Öffnen Sie Console und geben Sie ein:
localStorage.getItem('auth_token')
localStorage.getItem('user')
// Token setzen (für manuelles Testen)
localStorage.setItem('auth_token', 'TOKEN_HERE')
Netzwerk-Requests debugging
- Öffnen Sie F12 → Network Tab
- Aktualisieren Sie die Seite
- Klicken Sie auf einen Request
- Schauen Sie sich die Response an
- Mit "Pretty Print" JSON formatieren
Häufige Probleme
Problem: 500 Error beim Login
Lösung: Datenbank migrieren
php artisan migrate:fresh --seed
Problem: "Table personal_access_tokens doesn't exist"
Lösung: Personal Access Tokens Migration laufen lassen
php artisan migrate
Problem: Token funktioniert nicht
Lösung: Token muss im Format id|token sein
# Richtig:
curl -X GET http://localhost:8000/api/user/profile \
-H "Authorization: Bearer 1|l5z3Had9t8AiOnP2gAQZ4yb4QcbfZcs3UQihqVNib46e5d77"
# Falsch:
curl -X GET http://localhost:8000/api/user/profile \
-H "Authorization: Bearer l5z3Had9t8AiOnP2gAQZ4yb4QcbfZcs3UQihqVNib46e5d77"
Problem: CORS Fehler
Lösung: CORS ist bereits konfiguriert. Wenn Sie noch Fehler sehen:
- Browser Console öffnen
- Netzwerk-Request anschauen
- Response Headers prüfen auf
Access-Control-Allow-*
Performance-Tipps
Pagination nutzen
# Seite 2 mit 20 Items pro Seite
curl -X GET "http://localhost:8000/api/user/favorites?page=2&per_page=20" \
-H "Authorization: Bearer $TOKEN"
N+1 Query Problem vermeiden
Alle Endpunkte verwenden bereits ->with() für Eager Loading:
/api/user/favoriteslädtlocation,occurrences,source/api/user/eventslädtlocation,occurrences,source
Keine zusätzlichen Queries nötig!
SSL/HTTPS
Wenn Sie HTTPS testen möchten:
php artisan serve --port=8000 --host=localhost --cert
Oder verwenden Sie ngrok für öffentliche HTTPS-URLs:
ngrok http 8000
Viel Spaß beim Testen! 🚀