# Herramientas (uso local; no subir al hosting)

- `generar_demo.php`: regenera `sql/02_demo.sql` y `CASOS_DEMO.md` a partir de `datos_penal_civil.php` y `datos_familiar_laboral.php`. Uso: `php herramientas/generar_demo.php` desde la carpeta raíz del paquete. Utiliza las mismas funciones del editor de preguntas de la aplicación, por lo que el formato es idéntico al que produce el panel docente.
- `pruebas/e2e.py`: recorrido completo por HTTP contra una instalación local (ajusta `BASE` y los datos de la base en la función `sql`). Requiere Python 3 y el cliente `mariadb`. Parte de una base con `01_estructura.sql` + `02_demo.sql` y sin cuentas.
- `pruebas/intento.test.js`: prueba del guardado automático y del respaldo local con jsdom (`npm install jsdom`). Requiere haber corrido antes `e2e.py`.
- `pruebas/min.mp4`: MP4 mínimo válido usado en las pruebas de carga de archivos.
- `pruebas/desplegar.sh`: copia `casosvideo/` al servidor local de prueba y asigna permisos de escritura (`APP=/ruta` para cambiar el destino).
- `pruebas/reiniciar_bd.sh`: vuelve a crear la base de prueba con `01_estructura.sql` + `02_demo.sql` y limpia archivos generados.
- `pruebas/vivo_e2e.py`: recorrido completo del modo en vivo por HTTP (equipos, tarjetas, sesión, unirse, responder, puntajes, rachas, muro, CSV, reinicio, seguridad). Reinicia la base al empezar.
- `pruebas/carga_vivo.py`: prueba de carga (100 equipos simultáneos y 600 celulares consultando el estado). Variables `N_EQUIPOS` y `N_CELULARES`.
- `pruebas/navegador_vivo.py`: recorrido en Chromium real con Playwright (proyector 1920 × 1080 y tres celulares), capturas de pantalla y detección de errores de JavaScript o CSP. Uso: `python3 navegador_vivo.py carpeta_capturas`.
