veza/veza-backend-api/scripts/safe_coverage.sh
senke b28d0e7eac [T0-006] test(backend): Ajout tests pour frontend_log_handler
- Tests complets pour frontend_log_handler.go (12 tests)
- Tests couvrent NewFrontendLogHandler et ReceiveLog
- Tests pour tous les niveaux de log (DEBUG, INFO, WARN, ERROR)
- Tests pour gestion des erreurs et validation JSON
- Couverture actuelle: 30.6% (objectif: 80%)

Files: veza-backend-api/internal/handlers/frontend_log_handler_test.go
       VEZA_ROADMAP.json
Hours: 16 estimated, 23 actual
2026-01-04 01:44:22 +01:00

62 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
# safe_coverage.sh - Mesure la couverture UN PACKAGE À LA FOIS
# Usage: ./scripts/safe_coverage.sh
set -e
cd "$(dirname "$0")/.."
echo "=== COUVERTURE SÉCURISÉE (Anti-OOM) ==="
echo ""
RESULTS_FILE="/tmp/veza_coverage_$(date +%s).txt"
> "$RESULTS_FILE"
PACKAGES=$(go list ./internal/... 2>/dev/null)
TOTAL=$(echo "$PACKAGES" | wc -l)
CURRENT=0
TOTAL_COV=0
COV_COUNT=0
for pkg in $PACKAGES; do
CURRENT=$((CURRENT + 1))
SHORT_NAME=$(echo "$pkg" | sed 's|.*/internal/||')
# Test avec couverture (timeout 60s, silencieux)
COV=$(timeout 60s go test -count=1 -cover "$pkg" 2>/dev/null | grep -oP 'coverage: \K[0-9.]+' || echo "")
if [ -n "$COV" ]; then
printf "%-50s %6s%%\n" "$SHORT_NAME" "$COV"
echo "$SHORT_NAME|$COV" >> "$RESULTS_FILE"
TOTAL_COV=$(echo "$TOTAL_COV + $COV" | bc)
COV_COUNT=$((COV_COUNT + 1))
else
printf "%-50s %6s\n" "$SHORT_NAME" "N/A"
fi
# PAUSE pour libérer RAM
sleep 1
done
echo ""
echo "=== STATISTIQUES ==="
if [ $COV_COUNT -gt 0 ]; then
AVG=$(echo "scale=2; $TOTAL_COV / $COV_COUNT" | bc)
echo "📊 Moyenne: $AVG%"
echo "📦 Packages testés: $COV_COUNT / $TOTAL"
if (( $(echo "$AVG >= 85" | bc -l) )); then
echo "✅ OBJECTIF 85% ATTEINT!"
else
DELTA=$(echo "scale=2; 85 - $AVG" | bc)
echo "❌ Il manque $DELTA% pour atteindre 85%"
fi
else
echo "⚠️ Aucun package avec couverture mesurable"
fi
echo ""
echo "Résultats sauvés dans: $RESULTS_FILE"