Plan de Pruebas — Módulo de Recursos Humanos (RRHH)

---

Conceptos clave antes de empezar

| Término | Qué es en la práctica |
|---|---|
| Liquidación mensual | Nómina principal del período; base para IPS y acreditación bancaria |
| Liquidación quincenal | Adelanto parcial del mes; no reemplaza el cierre mensual |
| Pre-liquidación | Estado previo para revisar cálculos antes de cerrar |
| Liquidación cerrada | Estado inmutable (no editable) |
| IPS / REOP | Consolidado de aportes sobre liquidación mensual cerrada |
| Acreditación bancaria | Archivo de pago de sueldos por banco/formato |
| Asiento de liquidación | Devengamiento contable de la nómina cerrada |
| Egreso de tesorería | Movimiento confirmado que baja el saldo de banco/caja al pagar sueldos |
| Asiento de pago | Cancelación contable de `SUELDOS_A_PAGAR` contra banco/tesorería |
| Desvinculación | Finiquito por egreso con cálculo legal |
| Anticipo | Adelanto salarial descontable en mensual |
| Préstamo | Deuda con cuotas descontables en liquidación |
| Planilla consolidada | Resumen + detalle de una mensual cerrada (JSON/XLSX/PDF) |

---

Flujo obligatorio antes de cualquier prueba

1. Confirmar empresa de pruebas con sucursal activa.
2. Ejecutar seed de empleados si aplica: `npm run seed:rrhh:empleados -- --empresa-id=<UUID>`.
3. Verificar permisos del usuario de QA (RRHH operativo + reportes).
4. Validar catálogos mínimos cargados (tipos, cargos, departamentos, centros, conceptos, parámetros).
5. En `Contabilidad > Mapeo de Cuentas`, ejecutar `Crear cuentas y mapeos faltantes`.
6. Validar cuenta de tesorería activa con `cuenta_contable_id` configurado para pagar sueldos.
7. Configurar al menos un formato bancario activo para el banco de prueba.
8. Ejecutar fases en orden (F1 a F10).

Mínimos contables esperados tras el sembrado:

| Concepto | Cuenta default |
|---|---|
| `SUELDOS_JORNALES` | `6.1.1.01 — Sueldos y Salarios Administrativos` |
| `SUELDOS_A_PAGAR` | `2.1.3.04 — Sueldos y Jornales a Pagar` |
| `APORTE_PATRONAL_IPS` | `6.1.1.02 — Cargas Sociales - IPS Patronal` |
| `APORTE_ADMIN_IPS` | `6.1.1.02 — Cargas Sociales - IPS Patronal` |
| `IPS_A_DEPOSITAR` | `2.1.3.07 — IPS a Depositar` |
| `DESCUENTOS_VARIOS_RRHH` | `1.1.2.06 — Anticipos y Préstamos al Personal` |

---

Datos de prueba reutilizables

| Dato | Valor sugerido |
|---|---|
| Empresa | Demo RRHH |
| Sucursal | Matriz |
| Empleados activos | 20+ |
| Período base | Mes actual |
| Moneda | PYG |
| Banco | Banco Demo |
| Formato bancario | TXT estándar |
| Cuenta tesorería | Banco operativo con cuenta contable asociada |
| Usuario RRHH | Admin RRHH |
| Usuario sin reportes | Operador RRHH sin `RRHH_REPORTES_VER` |

---

FASE 1 — Catálogos y empleados (M01, M02, M03, M07, M15)

---

PRUEBA 1.1 — Alta de empleado con datos obligatorios

Dónde: RRHH > Empleados > Nuevo

Pasos:

1. Crear empleado con CI, número empleado, salario, sucursal, departamento, cargo, centro de costo y tipo.

Resultado esperado:

- Empleado creado en estado `ACTIVO`.
- Unicidad respetada por empresa para `numero_empleado` y `cedula_identidad`.

Resultado negativo (si falla):

- Duplicado CI o número: bloqueo con mensaje funcional.

---

PRUEBA 1.2 — Edición de empleado activo

Dónde: RRHH > Empleados > Editar

Pasos:

1. Modificar salario base y centro de costo.

Resultado esperado:

- Persisten cambios y queda trazabilidad de actualización.

Resultado negativo (si falla):

- Si no persiste o rompe referencias: defecto crítico de integridad.

---

PRUEBA 1.3 — Catálogos mínimos RRHH

Dónde: RRHH > Configuración

Pasos:

1. Validar existencia/alta de tipo empleado, cargo, departamento y centro de costo.

Resultado esperado:

- Catálogos operativos para crear empleados y liquidar.

Resultado negativo (si falla):

- Si falta catálogo obligatorio y el sistema permite continuar procesos core: defecto funcional.

---

FASE 2 — Vacaciones y novedades (M04)

---

PRUEBA 2.1 — Solicitud de vacaciones aprobada

Dónde: RRHH > Vacaciones

Pasos:

1. Crear solicitud con rango válido.
2. Aprobar solicitud.

Resultado esperado:

- Estado `APROBADO`.
- Impacto disponible para liquidación tipo `VACACIONES`.

Resultado negativo (si falla):

- Si aprueba con saldo insuficiente sin control: defecto de regla.

---

PRUEBA 2.2 — Novedad de asistencia impactando liquidación

Dónde: RRHH > Novedades

Pasos:

1. Registrar ausencia/tardanza con `impacta_liquidacion=true`.

Resultado esperado:

- Novedad guardada y lista para cálculo automático.

Resultado negativo (si falla):

- Si no impacta en liquidación posterior: defecto de integración.

---

FASE 3 — Préstamos y anticipos (M05, M06)

---

PRUEBA 3.1 — Préstamo activo con cuotas pendientes

Dónde: RRHH > Préstamos

Pasos:

1. Crear préstamo a empleado con cuotas mensuales.

Resultado esperado:

- Préstamo `ACTIVO` y cuotas `PENDIENTE`.

Resultado negativo (si falla):

- Si plan de cuotas inconsistente: defecto de cálculo financiero.

---

PRUEBA 3.2 — Anticipo aprobado del período

Dónde: RRHH > Anticipos

Pasos:

1. Crear y aprobar anticipo del mes.

Resultado esperado:

- Estado `APROBADO` y elegible para descuento en mensual.

Resultado negativo (si falla):

- Si mensual no descuenta anticipo aprobado: incumplimiento regla obligatoria.

---

FASE 4 — Liquidación mensual y quincenal (M09, M10, M11)

---

PRUEBA 4.1 — Crear liquidación mensual en borrador

Dónde: RRHH > Liquidaciones > Nueva

Pasos:

1. Crear liquidación tipo `MENSUAL` para período/sucursal.

Resultado esperado:

- Estado `BORRADOR`.

Resultado negativo (si falla):

- Duplicado de período/tipo/sucursal: bloqueo controlado.

---

PRUEBA 4.2 — Calcular liquidación mensual

Dónde: RRHH > Liquidaciones > Detalle > Calcular

Pasos:

1. Ejecutar cálculo de nómina.

Resultado esperado:

- Estado pasa a `PRE_LIQUIDACION`.
- Genera detalle y resumen por empleado.
- Descuenta anticipos y cuotas de préstamo del período.

Resultado negativo (si falla):

- Si queda en 0 con empleados activos aplicables: defecto crítico de motor.

---

PRUEBA 4.3 — Cerrar liquidación mensual

Dónde: RRHH > Liquidaciones > Detalle > Cerrar

Pasos:

1. Cerrar una pre-liquidación válida.

Resultado esperado:

- Estado `CERRADA`, fecha y usuario de cierre registrados.
- Datos quedan inmutables.

Resultado negativo (si falla):

- Si permite editar luego de cerrada: incumplimiento de regla #1.

---

PRUEBA 4.4 — Bloqueos legales en cierre (reglas 2, 9, 10)

Dónde: RRHH > Liquidaciones > Cerrar

Pasos:

1. Forzar escenario de neto negativo sin excepción.
2. Forzar descuentos >30% sin embargo válido.
3. Forzar embargo >50%.

Resultado esperado:

- Cierre bloqueado (`409`) con mensaje claro por cada regla.

Resultado negativo (si falla):

- Si permite cerrar: defecto crítico de cumplimiento legal.

---

PRUEBA 4.5 — Dependencia quincenal vs mensual

Dónde: RRHH > Liquidaciones

Pasos:

1. Dejar quincenal del período sin cerrar.
2. Intentar cerrar mensual.

Resultado esperado:

- Bloqueo de cierre mensual hasta resolver quincenal.

Resultado negativo (si falla):

- Si cierra mensual con quincenal pendiente: incumplimiento regla #8.

---

PRUEBA 4.6 — Sembrado contable autoservicio RRHH

Dónde: Contabilidad > Mapeo de Cuentas

Pasos:

1. En una empresa nueva o sin mapeos RRHH, presionar `Crear cuentas y mapeos faltantes`.
2. Verificar el grupo RRHH en pantalla.

Resultado esperado:

- Se crean cuentas estándar faltantes del plan.
- Los seis conceptos RRHH quedan mapeados y en verde.
- No se sobrescriben mapeos manuales existentes.

Resultado negativo (si falla):

- Si el usuario no puede resolver la configuración sin intervención técnica: defecto de autoservicio.

---

PRUEBA 4.7 — Generar asiento de liquidación cerrada

Dónde: RRHH > Liquidaciones > Detalle cerrada > Generar asiento

Pasos:

1. Cerrar una liquidación mensual válida.
2. Generar asiento contable.
3. Revisar asiento en Contabilidad.

Resultado esperado:

- Se crea documento contable con origen `rrhh_liquidacion`.
- El asiento queda `CONFIRMADO` y balanceado.
- Debe: `SUELDOS_JORNALES`, aportes patronales/admin si aplican.
- Haber: `SUELDOS_A_PAGAR`, `IPS_A_DEPOSITAR`, `DESCUENTOS_VARIOS_RRHH` si aplican.
- Las líneas de gasto usan centro de costo cuando corresponde.

Resultado negativo (si falla):

- Si falta configuración, la UI muestra guía persistente para resolver desde Mapeo de Cuentas.

---

FASE 5 — Aguinaldo y vacaciones liquidadas

---

PRUEBA 5.1 — Liquidación tipo AGUINALDO

Dónde: RRHH > Liquidaciones > Nueva (Aguinaldo)

Pasos:

1. Crear aguinaldo anual.
2. Calcular.

Resultado esperado:

- Se calcula sobre remuneraciones base del año.
- No aplica IPS en aguinaldo.

Resultado negativo (si falla):

- Si calcula con base incorrecta o aplica IPS: defecto legal.

---

PRUEBA 5.2 — Liquidación tipo VACACIONES

Dónde: RRHH > Liquidaciones > Nueva (Vacaciones)

Pasos:

1. Crear liquidación de vacaciones del mes.
2. Calcular.

Resultado esperado:

- Toma solicitudes aprobadas y genera pago proporcional por días.
- IPS aplica según `aporta_ips`.

Resultado negativo (si falla):

- Si ignora solicitudes aprobadas o calcula base errónea: defecto de motor.

---

FASE 6 — Planilla consolidada mensual (reportes)

---

PRUEBA 6.1 — Descarga planilla XLSX mensual cerrada

Dónde: RRHH > Liquidaciones > Detalle mensual cerrada

Pasos:

1. Descargar planilla XLSX.

Resultado esperado:

- Archivo válido con hojas de resumen y detalle.

Resultado negativo (si falla):

- Si liquidación no es mensual/cerrada debe devolver `409`.

---

PRUEBA 6.2 — PDF de planilla desde frontend

Dónde: RRHH > Liquidaciones > Descargar PDF

Pasos:

1. Generar PDF a partir de `planilla?format=json`.

Resultado esperado:

- PDF con cabecera, resumen, detalle y totales consistentes.

Resultado negativo (si falla):

- Si totales no cuadran con liquidación: defecto crítico de reporte.

---

PRUEBA 6.3 — Permiso de reportes

Dónde: Endpoint planilla / UI

Pasos:

1. Probar con usuario sin `RRHH_REPORTES_VER`.

Resultado esperado:

- `403` y mensaje funcional.

Resultado negativo (si falla):

- Si permite acceso sin permiso: defecto crítico de seguridad.

---

FASE 7 — IPS / REOP (M13)

---

PRUEBA 7.1 — Generar reporte IPS desde mensual cerrada

Dónde: RRHH > IPS / REOP

Pasos:

1. Generar reporte sobre una mensual cerrada.

Resultado esperado:

- Estado `GENERADO`, totales de base/aportes calculados.

Resultado negativo (si falla):

- Si permite sobre liquidación no mensual o no cerrada: defecto funcional.

---

PRUEBA 7.2 — Ciclo de estado IPS

Dónde: RRHH > IPS / REOP

Pasos:

1. Marcar `DECLARADO`.
2. Marcar `PAGADO`.

Resultado esperado:

- Transiciones válidas con fechas registradas.

Resultado negativo (si falla):

- Si salta estados inválidos: defecto de workflow.

---

FASE 8 — Acreditación bancaria (M12)

---

PRUEBA 8.1 — Generar archivo bancario

Dónde: RRHH > Acreditaciones

Pasos:

1. Generar acreditación desde mensual cerrada.
2. Seleccionar banco, formato y cuenta de tesorería de pago.

Resultado esperado:

- Archivo generado con cantidad de registros y monto total correctos.
- La acreditación queda en estado `GENERADO`.
- Se guarda `cuenta_tesoreria_id` para usarla al confirmar.

Resultado negativo (si falla):

- Si genera con liquidación inválida: defecto de validación.
- Si permite generar sin formato bancario activo: defecto de configuración.

---

PRUEBA 8.2 — Enviar y confirmar acreditación

Dónde: RRHH > Acreditaciones

Pasos:

1. Marcar `ENVIADO`.
2. Marcar `CONFIRMADO` usando una cuenta de tesorería activa.

Resultado esperado:

- Estado y trazabilidad actualizados.
- Si el módulo Tesorería está activo, se crea un movimiento `EGRESO` confirmado con origen `rrhh_acreditacion`.
- El saldo de la cuenta de tesorería baja por el monto acreditado.

Resultado negativo (si falla):

- Si permite confirmar una anulada: defecto de flujo.
- Si confirma sin registrar egreso cuando Tesorería está activa: defecto crítico de integración.

---

PRUEBA 8.3 — Asiento contable del pago de acreditación

Dónde: RRHH > Acreditaciones / Contabilidad > Asientos

Pasos:

1. Confirmar una acreditación con Tesorería y Contabilidad activos.
2. Buscar el movimiento de tesorería generado.
3. Verificar documento/asiento contable asociado al movimiento.

Resultado esperado:

- Se crea documento contable con origen `tes_movimientos`.
- El asiento queda `CONFIRMADO` y balanceado.
- Debe: `SUELDOS_A_PAGAR`.
- Haber: cuenta contable de la cuenta de tesorería/banco.
- El proceso es idempotente: reintentos no duplican movimiento ni asiento.

Resultado negativo (si falla):

- Si la cuenta de tesorería no tiene cuenta contable, debe quedar visible como configuración faltante.
- Si la categoría `PAGO_SUELDOS` no tiene mapeo efectivo, no debe quedar como fallo silencioso de cara al usuario.

---

FASE 9 — Desvinculaciones (M14)

---

PRUEBA 9.1 — Preview y creación de finiquito

Dónde: RRHH > Desvinculaciones > Nueva

Pasos:

1. Calcular preview de finiquito.
2. Crear desvinculación.

Resultado esperado:

- Estado inicial `CALCULADO` con componentes del finiquito.

Resultado negativo (si falla):

- Si no respeta datos de antigüedad/salario: defecto legal.

---

PRUEBA 9.2 — Aprobar y pagar finiquito

Dónde: RRHH > Desvinculaciones

Pasos:

1. Aprobar desvinculación.
2. Marcar como pagada.

Resultado esperado:

- Estado `PAGADO`.
- Empleado bloqueado para nuevas liquidaciones corrientes.

Resultado negativo (si falla):

- Si empleado pagado entra en nuevas liquidaciones: incumplimiento regla #11.

---

FASE 10 — Seguridad, paginación y consistencia FE/BE

---

PRUEBA 10.1 — Permisos por endpoint crítico

Dónde: Empleados, Liquidaciones, IPS, Acreditaciones, Desvinculaciones, Reportes

Pasos:

1. Ejecutar acciones con rol permitido y denegado.

Resultado esperado:

- `200/201` con permiso, `403` sin permiso.

Resultado negativo (si falla):

- Si hay bypass de permisos: defecto crítico de seguridad.

---

PRUEBA 10.2 — Paginación en listados operativos

Dónde: Listados RRHH paginados

Pasos:

1. Consumir con `page/limit`.
2. Verificar respuesta `data,total,page,limit`.

Resultado esperado:

- Contrato consistente en backend y UI.

Resultado negativo (si falla):

- Si frontend asume paginación donde no existe, o backend no respeta contrato: defecto de integración.

---

PRUEBA 10.3 — Auditoría de operaciones críticas

Dónde: Mutaciones RRHH

Pasos:

1. Crear/cerrar/anular liquidación, generar IPS, generar acreditación, pagar desvinculación.

Resultado esperado:

- Cada operación deja traza de usuario, fecha y acción.

Resultado negativo (si falla):

- Si no hay rastro auditable: defecto crítico de compliance.

---

Criterios de aceptación global

1. Reglas obligatorias 1–15 cumplidas en pruebas funcionales.
2. Flujo mensual completo operativo: pre-liquidar -> cerrar -> asiento de liquidación -> planilla -> IPS -> acreditación -> egreso de tesorería -> asiento de pago.
3. Desvinculación completa con bloqueo de reincorporación a nómina corriente.
4. Seguridad y permisos sin bypass.
5. Paginación consistente y sin regresiones en tabs RRHH.
6. Cliente nuevo puede preparar cuentas/mapeos RRHH con un click desde Contabilidad.

---

Evidencia mínima de cierre

1. Capturas/video por fase (F1–F10).
2. Export de respuestas API clave (cierre, asiento liquidación, planilla, IPS, acreditación, movimiento tesorería, asiento pago).
3. Matriz de resultado por prueba (`OK/FAIL`, observación, ticket).
