#!/usr/bin/env bash set -euo pipefail # ⚠️ DEPRECATED: This script is deprecated and will be removed in v2.0.0 # Please use: .github/skills/scripts/skill-runner.sh test-frontend-coverage # For more info: docs/AGENT_SKILLS_MIGRATION.md echo "⚠️ WARNING: This script is deprecated and will be removed in v2.0.0" >&2 echo " Please use: .github/skills/scripts/skill-runner.sh test-frontend-coverage" >&2 echo " For more info: docs/AGENT_SKILLS_MIGRATION.md" >&2 echo "" >&2 sleep 1 ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" FRONTEND_DIR="$ROOT_DIR/frontend" MIN_COVERAGE="${CHARON_MIN_COVERAGE:-${CPM_MIN_COVERAGE:-85}}" cd "$FRONTEND_DIR" # Ensure dependencies are installed for CI runs npm ci --silent # Ensure coverage output directories exist to avoid intermittent ENOENT errors mkdir -p coverage/.tmp # Run tests with coverage and json-summary reporter (force istanbul provider) # Using istanbul ensures json-summary and coverage-summary artifacts are produced # so that downstream checks can parse them reliably. npm run test:coverage -- --run SUMMARY_FILE="coverage/coverage-summary.json" if [ ! -f "$SUMMARY_FILE" ]; then echo "Error: Coverage summary file not found at $SUMMARY_FILE" exit 1 fi # Extract total statements percentage using python TOTAL_PERCENT=$(python3 -c "import json; print(json.load(open('$SUMMARY_FILE'))['total']['statements']['pct'])") echo "Computed frontend coverage: ${TOTAL_PERCENT}% (minimum required ${MIN_COVERAGE}%)" python3 - <