#!/usr/bin/env bash set -euo pipefail PROJECT_ROOT="$(git rev-parse --show-toplevel)/Olhar-PWA" cd "$PROJECT_ROOT" echo "🔍 Pre-commit: lancement des tests avec couverture..." # Déterminer le moteur de conteneur disponible if command -v docker &>/dev/null; then CONTAINER_CMD="docker" COMPOSE_CMD="docker compose" elif command -v podman &>/dev/null; then CONTAINER_CMD="podman" COMPOSE_CMD="podman-compose" else CONTAINER_CMD="" fi if [ -n "$CONTAINER_CMD" ]; then echo "📦 Exécution des tests via $CONTAINER_CMD..." $COMPOSE_CMD -f docker-compose.test.yml run --rm test else echo "⚠️ Docker/Podman non disponible — exécution locale des tests..." if [ ! -d "node_modules" ]; then echo "📥 Installation des dépendances..." npm ci fi npm run test:coverage fi EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then echo "" echo "❌ Tests échoués ou couverture insuffisante (<90%)." echo " Le commit est annulé. Corrigez les erreurs avant de committer." exit 1 fi echo "✅ Tests OK — couverture ≥ 90%. Commit autorisé." exit 0