test: flujos ejecutados de punta a punta contra un ERP falso
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>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
6df1d482cc
commit
1f7d33b40d
@@ -858,6 +858,8 @@ class NormalBot
|
||||
{
|
||||
if ($plantilla === '' || !str_contains($plantilla, '{')) return $plantilla;
|
||||
foreach ($recolectado as $k => $v) {
|
||||
// multi_select guarda arreglos; no son sustituibles en una URL
|
||||
if (is_array($v)) continue;
|
||||
$plantilla = str_replace('{' . $k . '}', (string)$v, $plantilla);
|
||||
}
|
||||
return $plantilla;
|
||||
|
||||
Reference in New Issue
Block a user