#!/bin/bash echo "==========================================" echo "🧪 TEST COMPLET DES TOKENS JWT PAR RÔLE" echo "==========================================" echo "" BASE_URL="http://localhost:4000" # ================================================ # TEST 1: CLIENT # ================================================ echo "👤 TEST 1: RÔLE CLIENT" echo "==========================================" echo "Connexion..." CLIENT_LOGIN=$(curl -s -X POST $BASE_URL/api/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"test-client@test.com","password":"Test1234"}') CLIENT_TOKEN=$(echo $CLIENT_LOGIN | grep -o '"token":"[^"]*' | cut -d'"' -f4) CLIENT_ROLE=$(echo $CLIENT_LOGIN | grep -o '"role":"[^"]*' | cut -d'"' -f4) if [ ! -z "$CLIENT_TOKEN" ]; then echo "✅ Token CLIENT reçu (rôle: $CLIENT_ROLE)" echo "" echo "✅ Test: Accès à /api/users/profile (doit réussir)" RESULT=$(curl -s -X GET $BASE_URL/api/users/profile \ -H "Authorization: Bearer $CLIENT_TOKEN") echo "$RESULT" | grep -q '"success":true' && echo " ✅ Succès" || echo " ❌ Échec: $RESULT" echo "" echo "❌ Test: Accès à /api/employee/pending-tickets (doit échouer)" RESULT=$(curl -s -X GET $BASE_URL/api/employee/pending-tickets \ -H "Authorization: Bearer $CLIENT_TOKEN") echo "$RESULT" | grep -q 'Accès refusé' && echo " ✅ Refusé comme prévu" || echo " ❌ Erreur: $RESULT" echo "" echo "❌ Test: Accès à /api/admin/statistics (doit échouer)" RESULT=$(curl -s -X GET $BASE_URL/api/admin/statistics \ -H "Authorization: Bearer $CLIENT_TOKEN") echo "$RESULT" | grep -q 'Accès refusé' && echo " ✅ Refusé comme prévu" || echo " ❌ Erreur: $RESULT" echo "" fi # ================================================ # TEST 2: EMPLOYEE # ================================================ echo "👔 TEST 2: RÔLE EMPLOYEE" echo "==========================================" echo "Connexion..." EMPLOYEE_LOGIN=$(curl -s -X POST $BASE_URL/api/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"employee@test.com","password":"Employee1234"}') EMPLOYEE_TOKEN=$(echo $EMPLOYEE_LOGIN | grep -o '"token":"[^"]*' | cut -d'"' -f4) EMPLOYEE_ROLE=$(echo $EMPLOYEE_LOGIN | grep -o '"role":"[^"]*' | cut -d'"' -f4) if [ ! -z "$EMPLOYEE_TOKEN" ]; then echo "✅ Token EMPLOYEE reçu (rôle: $EMPLOYEE_ROLE)" echo "" echo "✅ Test: Accès à /api/users/profile (doit réussir)" RESULT=$(curl -s -X GET $BASE_URL/api/users/profile \ -H "Authorization: Bearer $EMPLOYEE_TOKEN") echo "$RESULT" | grep -q '"success":true' && echo " ✅ Succès" || echo " ❌ Échec: $RESULT" echo "" echo "✅ Test: Accès à /api/employee/pending-tickets (doit réussir)" RESULT=$(curl -s -X GET $BASE_URL/api/employee/pending-tickets \ -H "Authorization: Bearer $EMPLOYEE_TOKEN") echo "$RESULT" | grep -q '"success":true' && echo " ✅ Succès" || echo " ❌ Échec: $RESULT" echo "" echo "❌ Test: Accès à /api/admin/statistics (doit échouer)" RESULT=$(curl -s -X GET $BASE_URL/api/admin/statistics \ -H "Authorization: Bearer $EMPLOYEE_TOKEN") echo "$RESULT" | grep -q 'Accès refusé' && echo " ✅ Refusé comme prévu" || echo " ❌ Erreur: $RESULT" echo "" fi # ================================================ # TEST 3: ADMIN # ================================================ echo "👑 TEST 3: RÔLE ADMIN" echo "==========================================" echo "Connexion..." ADMIN_LOGIN=$(curl -s -X POST $BASE_URL/api/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"admin@test.com","password":"Admin1234"}') ADMIN_TOKEN=$(echo $ADMIN_LOGIN | grep -o '"token":"[^"]*' | cut -d'"' -f4) ADMIN_ROLE=$(echo $ADMIN_LOGIN | grep -o '"role":"[^"]*' | cut -d'"' -f4) if [ ! -z "$ADMIN_TOKEN" ]; then echo "✅ Token ADMIN reçu (rôle: $ADMIN_ROLE)" echo "" echo "✅ Test: Accès à /api/users/profile (doit réussir)" RESULT=$(curl -s -X GET $BASE_URL/api/users/profile \ -H "Authorization: Bearer $ADMIN_TOKEN") echo "$RESULT" | grep -q '"success":true' && echo " ✅ Succès" || echo " ❌ Échec: $RESULT" echo "" echo "✅ Test: Accès à /api/employee/pending-tickets (doit réussir)" RESULT=$(curl -s -X GET $BASE_URL/api/employee/pending-tickets \ -H "Authorization: Bearer $ADMIN_TOKEN") echo "$RESULT" | grep -q '"success":true' && echo " ✅ Succès" || echo " ❌ Échec: $RESULT" echo "" echo "✅ Test: Accès à /api/admin/statistics (doit réussir)" RESULT=$(curl -s -X GET $BASE_URL/api/admin/statistics \ -H "Authorization: Bearer $ADMIN_TOKEN") echo "$RESULT" | grep -q '"success":true' && echo " ✅ Succès" || echo " ❌ Échec: $RESULT" echo "" echo "✅ Test: Accès à /api/admin/users (doit réussir)" RESULT=$(curl -s -X GET $BASE_URL/api/admin/users \ -H "Authorization: Bearer $ADMIN_TOKEN") echo "$RESULT" | grep -q '"success":true' && echo " ✅ Succès" || echo " ❌ Échec: $RESULT" echo "" fi echo "==========================================" echo "✅ TOUS LES TESTS TERMINÉS" echo "==========================================" echo "" echo "📊 RÉSUMÉ:" echo "- ✅ CLIENT: Accès routes utilisateur uniquement" echo "- ✅ EMPLOYEE: Accès routes utilisateur + employé" echo "- ✅ ADMIN: Accès toutes les routes"