# Evidencia QA/UAT Compras-Gastos

Fecha de actualización: 28/04/2026
Alcance de esta actualización: ejecución UAT de `PRUEBA 5.4` y `PRUEBA 6.1/6.2` del plan de usuario Compras-Gastos.

---

## Evidencia técnica reproducible

Comandos ejecutados:

1. `cd backend && npm test -- src/pagos-proveedor/pagos-proveedor.service.spec.ts --runInBand`
   - Resultado: `PASS` (`17/17` tests).
2. `cd backend && npm run test:smoke:f2f3`
   - Resultado: `PASS` (`47/47` tests).

---

## Registro por caso (UAT objetivo)

| Caso | Resultado | Severidad | Ruta de reproducción | Evidencia |
|---|---|---|---|---|
| PRUEBA 5.4 — Enviar OP a aprobación (`BORRADOR` -> `PENDIENTE_APROBACION`) | OK | - | `PATCH /pagos-proveedor/:id/enviar-aprobacion` con config de aprobación obligatoria activa | Cubierto por test unitario (`pagos-proveedor.service.spec.ts`) |
| PRUEBA 5.4 — Aprobar OP (`PENDIENTE_APROBACION` -> `PENDIENTE`) | OK | - | `PATCH /pagos-proveedor/:id/aprobar` | Cubierto por test unitario (`pagos-proveedor.service.spec.ts`) |
| PRUEBA 5.4 — Rechazar OP (`PENDIENTE_APROBACION` -> `RECHAZADA`) con motivo | OK | - | `PATCH /pagos-proveedor/:id/rechazar` con payload `{ motivo }` | Cubierto por test unitario (`pagos-proveedor.service.spec.ts`) |
| PRUEBA 6.1 — Ejecutar OP válida en estado ejecutable | OK | - | `POST /pagos-proveedor/:id/ejecutar` | Cobertura existente + smoke F2/F3 en verde |
| PRUEBA 6.2 — Bloqueo de ejecución en `PAGADO` | OK | - | `POST /pagos-proveedor/:id/ejecutar` sobre OP `PAGADO` | Cubierto por test unitario (`pagos-proveedor.service.spec.ts`) |
| PRUEBA 6.2 — Bloqueo de ejecución en `ANULADA` | OK | - | `POST /pagos-proveedor/:id/ejecutar` sobre OP `ANULADA` | Cubierto por test unitario (`pagos-proveedor.service.spec.ts`) |
| PRUEBA 6.2 — Bloqueo de ejecución en `PENDIENTE_APROBACION` (workflow obligatorio) | OK | - | `POST /pagos-proveedor/:id/ejecutar` con config de aprobación obligatoria | Cubierto por test unitario (`pagos-proveedor.service.spec.ts`) |
| PRUEBA 6.2 — Bloqueo de ejecución en `RECHAZADA` (workflow obligatorio) | OK | - | `POST /pagos-proveedor/:id/ejecutar` con config de aprobación obligatoria | Cubierto por test unitario (`pagos-proveedor.service.spec.ts`) |

---

## Defectos detectados

- No se detectaron defectos `blocker`, `major` ni `minor` en las pruebas técnicas ejecutadas para 5.4 y 6.1/6.2.

---

## Pendientes de cierre visual (UAT manual)

Para cierre de auditoría visual en desktop/mobile, queda pendiente adjuntar capturas de:

1. Acción UI “Enviar a aprobación” en OP `BORRADOR`.
2. Acción UI “Aprobar” en OP `PENDIENTE_APROBACION`.
3. Acción UI “Rechazar” con motivo.
4. Mensajes de bloqueo al ejecutar OP en estados no permitidos (`PAGADO`, `ANULADA`, `PENDIENTE_APROBACION`, `RECHAZADA`).

Estado de cierre parcial de este bloque:
- Técnico/API: **OK**
- Visual desktop/mobile: **Pendiente de captura**
