workspace/projects/gamilit/apps/backend/test-intervention-alerts.sh
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 10:44:23 -06:00

107 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
###############################################################################
# SCRIPT DE TESTING MANUAL - INTERVENTION ALERTS API
###############################################################################
#
# Descripción: Script para validar manualmente los endpoints de alertas
# de intervención estudiantil del portal Teacher.
#
# Prerrequisitos:
# - Backend corriendo en http://localhost:3006
# - Token JWT válido de un teacher (ADMIN_TEACHER o SUPER_ADMIN)
# - Base de datos con tabla student_intervention_alerts creada
#
# Uso:
# ./test-intervention-alerts.sh <JWT_TOKEN>
#
# Ejemplo:
# ./test-intervention-alerts.sh "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
#
###############################################################################
set -e
# Colores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Variables
BASE_URL="http://localhost:3006/api/v1"
TOKEN="${1}"
if [ -z "$TOKEN" ]; then
echo -e "${RED}Error: JWT token requerido${NC}"
echo "Uso: $0 <JWT_TOKEN>"
exit 1
fi
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}TESTING INTERVENTION ALERTS API${NC}"
echo -e "${BLUE}========================================${NC}\n"
# Test 1: Listar todas las alertas
echo -e "${YELLOW}Test 1: GET /teacher/alerts${NC}"
curl -X GET "${BASE_URL}/teacher/alerts" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-w "\nHTTP Status: %{http_code}\n\n"
# Test 2: Listar alertas con filtros
echo -e "${YELLOW}Test 2: GET /teacher/alerts?severity=critical&status=active${NC}"
curl -X GET "${BASE_URL}/teacher/alerts?severity=critical&status=active&limit=10" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-w "\nHTTP Status: %{http_code}\n\n"
# Test 3: Búsqueda por texto
echo -e "${YELLOW}Test 3: GET /teacher/alerts?search=estudiante${NC}"
curl -X GET "${BASE_URL}/teacher/alerts?search=estudiante" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-w "\nHTTP Status: %{http_code}\n\n"
# Test 4: Generar alertas manualmente (testing)
echo -e "${YELLOW}Test 4: POST /teacher/alerts/generate${NC}"
curl -X POST "${BASE_URL}/teacher/alerts/generate" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-w "\nHTTP Status: %{http_code}\n\n"
# Test 5: Obtener detalle de alerta específica (requiere ID válido)
echo -e "${YELLOW}Test 5: GET /teacher/alerts/:id${NC}"
echo -e "${YELLOW}(Se omite - requiere ID de alerta existente)${NC}\n"
# Test 6: Acknowledge alerta (requiere ID válido)
echo -e "${YELLOW}Test 6: PATCH /teacher/alerts/:id/acknowledge${NC}"
echo -e "${YELLOW}(Se omite - requiere ID de alerta existente)${NC}\n"
# Test 7: Resolver alerta (requiere ID válido)
echo -e "${YELLOW}Test 7: PATCH /teacher/alerts/:id/resolve${NC}"
echo -e "${YELLOW}(Se omite - requiere ID de alerta existente)${NC}\n"
# Test 8: Descartar alerta (requiere ID válido)
echo -e "${YELLOW}Test 8: PATCH /teacher/alerts/:id/dismiss${NC}"
echo -e "${YELLOW}(Se omite - requiere ID de alerta existente)${NC}\n"
# Test 9: Historial de alertas de estudiante (requiere student_id válido)
echo -e "${YELLOW}Test 9: GET /teacher/alerts/student/:studentId/history${NC}"
echo -e "${YELLOW}(Se omite - requiere ID de estudiante existente)${NC}\n"
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}Testing completado${NC}"
echo -e "${BLUE}========================================${NC}\n"
echo -e "${YELLOW}Notas:${NC}"
echo "- Tests 5-9 requieren IDs válidos para ejecutarse"
echo "- Usa los IDs obtenidos del Test 1 para probar endpoints individuales"
echo ""
echo -e "${YELLOW}Ejemplo de testing completo con ID:${NC}"
echo " ALERT_ID=\$(curl -s \"${BASE_URL}/teacher/alerts\" -H \"Authorization: Bearer \${TOKEN}\" | jq -r '.data[0].id')"
echo " curl -X GET \"${BASE_URL}/teacher/alerts/\${ALERT_ID}\" -H \"Authorization: Bearer \${TOKEN}\""
echo " curl -X PATCH \"${BASE_URL}/teacher/alerts/\${ALERT_ID}/acknowledge\" -H \"Authorization: Bearer \${TOKEN}\""
echo ""