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