- 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
62 lines
1.5 KiB
Bash
Executable file
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"
|
|
|