#!/bin/bash

echo ""
echo "🔍 Verifying Jest coverage for new files..."

CHANGED_FILES=$(cat new_files.txt || true)
[ -z "$CHANGED_FILES" ] && echo "✅ No new TS files added. Skipping coverage check." && exit 0

[ ! -f coverage/coverage-summary.json ] && echo "🚨 coverage-summary.json not found!" && exit 1

LOW_COVERAGE=()
for FILE in $CHANGED_FILES; do
  COVERAGE=$(jq -r --arg FILE "$(git rev-parse --show-toplevel)/$FILE" '(.[$FILE].lines.pct // 0)' < coverage/coverage-summary.json)
  ICON=$(echo "$COVERAGE >= 80" | bc -l | grep -q 1 && echo "✅" || (echo "$COVERAGE >= 50" | bc -l | grep -q 1 && echo "⚠️" || echo "🚨"))
  echo "- $ICON $FILE: $COVERAGE%"
  [ "$(echo "$COVERAGE < $COVERAGE_TARGET" | bc -l)" -eq 1 ] && LOW_COVERAGE+=("$FILE ($COVERAGE%)")
done

if [ ${#LOW_COVERAGE[@]} -ne 0 ]; then
  echo ""
  echo "❌ Coverage below ${COVERAGE_TARGET}%:"
  printf ' - %s\n' "${LOW_COVERAGE[@]}"
  exit 1
fi

echo "🏆 ✅ All new TS files meet the ${COVERAGE_TARGET}% requirement! 🎉"