setup/tests/ corre NormalBot de verdad —no un espejo—: SQLite en memoria con los endpoints del seed reescritos hacia fixtures_api.php servido con php -S, asi el curl real se ejecuta y los POST capturados se comparan contra el contrato del procesador. ConversationContext, WhatsAppSender y AiBot son falsos en memoria; el resto es el codigo de produccion. 51 casos: finca restringida que entra sola, ausentismo completo con rango invertido rechazado, perfiles trabajador/supervisor, ciclos con multi-select paginado, mantenimiento con requires/resolver, labores con cuadrilla, y NLU que resuelve "plateo" por entity hasta el informe. Destaparon dos errores reales: - registrar_mantenimiento posteaba a labores_up sin novedad_id ni empleados, que el procesador exige: el ERP lo habria rechazado siempre. Ahora pide la labor del grupo elegido (endpoint nuevo novedades_mant_dn) y la cuadrilla. - resolverPorCampos reventaba con warning al sustituir arreglos en la URL. Uso: bash setup/tests/run.sh Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 lines
373 B
Bash
Executable File
11 lines
373 B
Bash
Executable File
#!/bin/bash
|
|
# Levanta el ERP falso, corre los tests de flujo y apaga el servidor.
|
|
cd "$(dirname "$0")/../.."
|
|
export CAPTURE_LOG="${TMPDIR:-/tmp}/bot_test_capture.jsonl"
|
|
: > "$CAPTURE_LOG"
|
|
CAPTURE_LOG="$CAPTURE_LOG" php -S 127.0.0.1:8973 setup/tests/fixtures_api.php >/dev/null 2>&1 &
|
|
SERVER=$!
|
|
trap "kill $SERVER 2>/dev/null" EXIT
|
|
sleep 0.4
|
|
php setup/tests/test_flujos.php
|