5.5 KiB
🚀 Guide de démarrage et débogage - Notifications Tickets Support
⚠️ Important : Redémarrage du serveur requis
Après avoir créé ou modifié des routes API dans Next.js, il est OBLIGATOIRE de redémarrer le serveur de développement. Sinon, les nouvelles routes ne seront pas disponibles (erreur 404).
📋 Checklist avant de tester
1. Vérifier les fichiers
./test-ticket-notifications.sh
Tous les fichiers doivent avoir une ✅ verte.
2. Redémarrer le serveur Next.js
Option A : Arrêter proprement
# Dans le terminal où tourne npm run dev, appuyez sur Ctrl+C
# Puis relancez :
npm run dev
Option B : Forcer l'arrêt
# Tuer tous les processus Next.js
pkill -f "next dev"
# Attendre 2 secondes
sleep 2
# Relancer
npm run dev
3. Vérifier que le serveur démarre bien
Vous devriez voir :
▲ Next.js 14.x.x
- Local: http://localhost:3000
- ready started server on 0.0.0.0:3000
🔍 Comment tester
1. Ouvrir la console du navigateur
- Chrome/Edge : F12 ou Cmd+Option+I (Mac)
- Firefox : F12 ou Cmd+Option+K (Mac)
- Safari : Cmd+Option+C (Mac)
2. Aller sur une page de ticket
http://localhost:3000/staff/tickets/[un-id-de-ticket-existant]
3. Regarder les logs
Dans la console du navigateur (F12) :
🔍 [StaffTicketActions] Fetching recipient info for ticket: xxx-xxx-xxx
🔍 [StaffTicketActions] URL: /api/tickets/xxx-xxx-xxx/recipient-info
🔍 [StaffTicketActions] Response status: 200
✅ [StaffTicketActions] Recipient info: {email: "...", name: "..."}
Dans le terminal Next.js :
📋 [ticket page] User ID: xxx-xxx-xxx
📋 [ticket page] Email: user@example.com
📋 [ticket page] User metadata: {
"display_name": "Jean",
...
}
✅ [ticket page] Nom trouvé dans display_name: Jean
❌ Diagnostic des problèmes
Problème 1 : Erreur 404 sur /api/tickets/[id]/recipient-info
Symptômes :
- Console navigateur :
GET /api/tickets/.../recipient-info 404 (Not Found) - Aucun log dans le terminal serveur
Solutions :
-
✅ Vérifier que le fichier existe
ls -la app/api/tickets/[id]/recipient-info/route.ts -
✅ Redémarrer le serveur Next.js (voir ci-dessus)
-
✅ Vérifier qu'il n'y a pas d'erreurs TypeScript
npm run build -
✅ Vérifier la syntaxe du fichier
- Le fichier doit exporter une fonction
GET - La fonction doit avoir la signature :
async function GET(_: Request, { params }: { params: { id: string } })
- Le fichier doit exporter une fonction
Problème 2 : "Utilisateur inconnu" affiché
Symptômes :
- La page affiche "Ouvert par: Utilisateur inconnu"
- Logs montrent
user_metadata: {}ounull
Diagnostic :
-
Vérifier dans Supabase Auth :
- Aller dans Authentication → Users
- Cliquer sur l'utilisateur concerné
- Vérifier que le champ "Display name" est rempli
-
Si le champ est vide :
- C'est normal ! L'utilisateur n'a pas de prénom enregistré
- Le système va afficher l'email à la place
- Pour tester, ajoutez un "Display name" dans Supabase
-
Vérifier les logs :
📋 [ticket page] User metadata: {...}- Si vous voyez
{}→ pas de métadonnées → normal - Si vous voyez
{display_name: "..."}→ devrait fonctionner
- Si vous voyez
Problème 3 : Pas de logs dans le terminal
Causes possibles :
- Le serveur n'a pas été redémarré après les modifications
- Vous regardez le mauvais terminal (plusieurs serveurs lancés ?)
- Les logs sont filtrés
Solutions :
- Redémarrer le serveur
- Vérifier quel processus écoute sur le port 3000 :
lsof -ti:3000 - S'assurer qu'il n'y a qu'un seul serveur Next.js qui tourne
Problème 4 : Le modal ne s'affiche pas
Symptômes :
- On clique sur "Envoyer" mais rien ne se passe
- Pas d'erreur dans la console
Diagnostic :
-
Vérifier dans la console navigateur :
✅ [StaffTicketActions] Recipient info: {...}- Si absent → l'API n'a pas retourné les infos
- Si présent → le modal devrait s'afficher
-
Vérifier que la checkbox "Note interne" n'est PAS cochée
- Les notes internes ne déclenchent pas le modal
-
Vérifier l'état React :
- Ouvrir React DevTools
- Chercher
StaffTicketActions - Vérifier
recipientInfo→ doit avoir{email, name}
🎯 Cas de test
Test 1 : Affichage du nom sur la page
- Aller sur
/staff/tickets/[id] - Vérifier que "Ouvert par:" affiche un nom ou un email
- Vérifier les logs dans le terminal
Test 2 : Modal de confirmation
- Aller sur
/staff/tickets/[id] - Écrire un message dans le textarea
- NE PAS cocher "Note interne"
- Cliquer sur "Envoyer"
- → Le modal doit s'afficher avec l'email et le nom du destinataire
Test 3 : Note interne (pas de modal)
- Aller sur
/staff/tickets/[id] - Écrire un message dans le textarea
- COCHER "Note interne"
- Cliquer sur "Envoyer"
- → Le message doit être envoyé directement SANS modal
📞 Si ça ne fonctionne toujours pas
-
Arrêter complètement Next.js
pkill -f "next" lsof -ti:3000 # Doit retourner vide -
Nettoyer le cache Next.js
rm -rf .next -
Redémarrer
npm run dev -
Vérifier les logs dans la console ET le terminal
-
Partager les logs si le problème persiste :
- Logs de la console navigateur (F12)
- Logs du terminal Next.js
- Capture d'écran de la page
Guide créé le 14 octobre 2025