#!/usr/bin/env bash
# CI gate (issue 0048): falla si una funcion C++ creada en los ultimos N dias
# no tiene `tested: true` en su frontmatter del .md.
#
# Uso:
#   cpp/scripts/check_tested.sh [days]   # default: 30
#
# Requiere que registry.db este actualizada (corre `fn index` antes).
set -euo pipefail
DAYS="${1:-30}"
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
DB="$ROOT/registry.db"
if [ ! -f "$DB" ]; then
    echo "WARN: registry.db not found at $DB; run 'fn index' first."
    exit 0
fi

UNTESTED=$(sqlite3 "$DB" \
  "SELECT id FROM functions WHERE lang='cpp' AND tested=0 \
   AND (created_at IS NULL OR created_at > datetime('now','-${DAYS} days'));")
if [ -n "$UNTESTED" ]; then
    echo "FAIL: las siguientes funciones C++ recientes no tienen tested:true en .md:"
    echo "$UNTESTED"
    echo ""
    echo "Anade un test (cpp/tests/test_<name>.cpp) y marca el frontmatter del .md con tested:true."
    exit 1
fi
echo "OK: todas las funciones C++ recientes (<= ${DAYS}d) tienen tests."
