the-tip-top-backend/test-all-roles.sh
2025-11-17 23:47:54 +01:00

135 lines
5.3 KiB
Bash

#!/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"