#!/bin/bash
# Test d'expiration de refresh token

echo "=== Test d'expiration de refresh token ==="
echo ""

# 1. Login et créer un refresh token
echo "1. Login et création du refresh token..."
RESPONSE=$(curl -s -X POST https://api.captaindecision.com/auth/login.php \
  -H "Content-Type: application/json" \
  -d '{"email":"testpilot@airline.com","password":"testpass123","device_id":"expiry-test-device"}')

REFRESH_TOKEN=$(echo $RESPONSE | grep -o '"refresh_token":"[^"]*"' | cut -d'"' -f4)
echo "Refresh token créé: ${REFRESH_TOKEN:0:20}..."
echo ""

# 2. Vérifier que le token fonctionne
echo "2. Test avec token valide..."
VALID_RESPONSE=$(curl -s -X POST https://api.captaindecision.com/auth/refresh_token.php \
  -H "Content-Type: application/json" \
  -d "{\"refresh_token\":\"$REFRESH_TOKEN\",\"device_id\":\"expiry-test-device\"}")
echo $VALID_RESPONSE | grep -q '"success":true' && echo "✅ Token valide fonctionne" || echo "❌ Erreur"
echo ""

# 3. Expirer manuellement le token
echo "3. Expiration manuelle du token..."
/Applications/MAMP/Library/bin/mysql -u root -proot slipstream_db -e \
  "UPDATE refresh_tokens SET expires_at = '2020-01-01 00:00:00' WHERE token = '$REFRESH_TOKEN'" 2>/dev/null
echo "Token expiré dans la base de données"
echo ""

# 4. Tester avec token expiré
echo "4. Test avec token expiré..."
EXPIRED_RESPONSE=$(curl -s -X POST https://api.captaindecision.com/auth/refresh_token.php \
  -H "Content-Type: application/json" \
  -d "{\"refresh_token\":\"$REFRESH_TOKEN\",\"device_id\":\"expiry-test-device\"}")
echo $EXPIRED_RESPONSE
echo $EXPIRED_RESPONSE | grep -q '"error":"Refresh token expired"' && echo "✅ Erreur d'expiration correcte" || echo "❌ Réponse inattendue"
echo ""

# 5. Vérifier que le token a été supprimé
echo "5. Vérification de la suppression du token expiré..."
COUNT=$(/Applications/MAMP/Library/bin/mysql -u root -proot slipstream_db -se \
  "SELECT COUNT(*) FROM refresh_tokens WHERE token = '$REFRESH_TOKEN'" 2>/dev/null)
if [ "$COUNT" = "0" ]; then
  echo "✅ Token expiré supprimé de la base de données"
else
  echo "❌ Token non supprimé (count: $COUNT)"
fi
echo ""

echo "=== Test terminé ==="
