135 lines
5.3 KiB
Bash
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"
|