106 lines
3.5 KiB
Bash
Executable File
106 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
||
# Script de test pour l'import de fichiers .md
|
||
# Teste la détection de doublons
|
||
|
||
set -e
|
||
|
||
API_URL="http://localhost:8007/api/peripherals/import/markdown"
|
||
TEST_FILE="fichier_usb/ID_0b05_17cb.md"
|
||
|
||
echo "=========================================="
|
||
echo "Test d'import de fichiers .md"
|
||
echo "=========================================="
|
||
echo ""
|
||
|
||
# Vérifier que le fichier de test existe
|
||
if [ ! -f "$TEST_FILE" ]; then
|
||
echo "❌ Fichier de test non trouvé: $TEST_FILE"
|
||
exit 1
|
||
fi
|
||
|
||
echo "✅ Fichier de test trouvé: $TEST_FILE"
|
||
echo ""
|
||
|
||
# Test 1 : Premier import (devrait créer le périphérique)
|
||
echo "📋 Test 1 : Premier import du fichier"
|
||
echo "--------------------------------------"
|
||
response1=$(curl -s -X POST "$API_URL" -F "file=@$TEST_FILE")
|
||
echo "Réponse API:"
|
||
echo "$response1" | jq '.'
|
||
|
||
already_exists=$(echo "$response1" | jq -r '.already_exists')
|
||
|
||
if [ "$already_exists" = "false" ]; then
|
||
echo "✅ Test 1 RÉUSSI : Nouveau périphérique détecté (already_exists=false)"
|
||
echo ""
|
||
|
||
# Créer le périphérique dans la base
|
||
echo "📝 Création du périphérique dans la base de données..."
|
||
suggested=$(echo "$response1" | jq '.suggested_peripheral')
|
||
|
||
create_response=$(curl -s -X POST "http://localhost:8007/api/peripherals" \
|
||
-H "Content-Type: application/json" \
|
||
-d "$suggested")
|
||
|
||
peripheral_id=$(echo "$create_response" | jq -r '.id')
|
||
echo "✅ Périphérique créé avec ID: $peripheral_id"
|
||
echo ""
|
||
|
||
# Test 2 : Réimporter le même fichier (devrait détecter le doublon)
|
||
echo "📋 Test 2 : Réimport du même fichier (détection doublon)"
|
||
echo "--------------------------------------"
|
||
response2=$(curl -s -X POST "$API_URL" -F "file=@$TEST_FILE")
|
||
echo "Réponse API:"
|
||
echo "$response2" | jq '.'
|
||
|
||
already_exists2=$(echo "$response2" | jq -r '.already_exists')
|
||
|
||
if [ "$already_exists2" = "true" ]; then
|
||
echo "✅ Test 2 RÉUSSI : Doublon détecté (already_exists=true)"
|
||
echo ""
|
||
|
||
existing_id=$(echo "$response2" | jq -r '.existing_peripheral_id')
|
||
existing_nom=$(echo "$response2" | jq -r '.existing_peripheral.nom')
|
||
|
||
echo "Périphérique existant détecté:"
|
||
echo " ID: $existing_id"
|
||
echo " Nom: $existing_nom"
|
||
echo ""
|
||
|
||
# Nettoyer : supprimer le périphérique de test
|
||
echo "🧹 Nettoyage : Suppression du périphérique de test..."
|
||
curl -s -X DELETE "http://localhost:8007/api/peripherals/$peripheral_id" > /dev/null
|
||
echo "✅ Périphérique supprimé"
|
||
echo ""
|
||
|
||
echo "=========================================="
|
||
echo "✅ TOUS LES TESTS RÉUSSIS !"
|
||
echo "=========================================="
|
||
echo ""
|
||
echo "Résumé:"
|
||
echo " ✅ Import nouveau périphérique : OK"
|
||
echo " ✅ Détection de doublon : OK"
|
||
echo " ✅ Nettoyage : OK"
|
||
echo ""
|
||
else
|
||
echo "❌ Test 2 ÉCHOUÉ : Doublon NON détecté"
|
||
exit 1
|
||
fi
|
||
|
||
elif [ "$already_exists" = "true" ]; then
|
||
echo "ℹ️ Le périphérique existe déjà dans la base"
|
||
echo " (probablement un test précédent non nettoyé)"
|
||
echo ""
|
||
|
||
existing_id=$(echo "$response1" | jq -r '.existing_peripheral_id')
|
||
echo "🧹 Nettoyage : Suppression du périphérique..."
|
||
curl -s -X DELETE "http://localhost:8007/api/peripherals/$existing_id" > /dev/null
|
||
echo "✅ Périphérique supprimé"
|
||
echo ""
|
||
echo "Relancez le script pour un test complet"
|
||
|
||
else
|
||
echo "❌ Test 1 ÉCHOUÉ : Réponse inattendue"
|
||
exit 1
|
||
fi
|