#!/bin/bash # Script de test pour le système de mise à jour Docker # Inspiré de TrueNAS Scale set -e # Couleurs RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Configuration API_URL="http://localhost:8000/api/v1" TOKEN=${AUTH_TOKEN:-"your-token-here"} echo -e "${BLUE}========================================${NC}" echo -e "${BLUE}Docker Update System - Test Suite${NC}" echo -e "${BLUE}Inspiré de TrueNAS Scale${NC}" echo -e "${BLUE}========================================${NC}\n" # Fonction pour tester une API test_api() { local method=$1 local endpoint=$2 local data=$3 local description=$4 echo -e "${YELLOW}[TEST]${NC} $description" echo -e " Endpoint: $method $endpoint" if [ -z "$data" ]; then response=$(curl -s -X "$method" \ -H "Authorization: Bearer $TOKEN" \ "$API_URL$endpoint") else response=$(curl -s -X "$method" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "$data" \ "$API_URL$endpoint") fi if echo "$response" | grep -q "error\|Error"; then echo -e " ${RED}✗ FAILED${NC}" echo " Response: $response" return 1 else echo -e " ${GREEN}✓ PASSED${NC}" echo " Response: ${response:0:100}..." return 0 fi echo "" } # Tests de Docker Images echo -e "${BLUE}### Tests Docker Images ${NC}\n" test_api "GET" "/docker/status" "" "Vérifier statut Docker" test_api "GET" "/docker/containers" "" "Lister les conteneurs" test_api "GET" "/docker/images" "" "Lister les images" test_api "GET" "/docker/images/check-all-updates" "" "Vérifier toutes les mises à jour" # Tests de Docker Compose echo -e "\n${BLUE}### Tests Docker Compose ${NC}\n" test_api "GET" "/docker/compose/list" "" "Lister les docker-compose" # Tester portainer echo -e "\n${BLUE}### Tests Compose - Portainer ${NC}\n" test_api "GET" "/docker/compose/portainer/status" "" "Vérifier l'état de Portainer" # Tests de nettoyage echo -e "\n${BLUE}### Tests Cleanup ${NC}\n" test_api "POST" "/docker/images/prune?dangling_only=true" "" "Nettoyer les images orphelines" # Afficher un résumé echo -e "\n${BLUE}========================================${NC}" echo -e "${GREEN}Tests Terminés${NC}" echo -e "${BLUE}========================================${NC}" echo -e "\nPour des tests plus avancés:" echo -e " ${YELLOW}1. Mettre à jour TOKEN (AUTH_TOKEN env var)${NC}" echo -e " ${YELLOW}2. Vérifier les logs du backend${NC}" echo -e " ${YELLOW}3. Consulter DOCKER_UPDATE_SYSTEM.md${NC}"