Prueba: Cuentas por pagar – Egresos: Realizar abono
Objetivo
Validar que el sistema permita realizar abonos a cuentas por pagar usando distintos medios de pago, asegurando que el modal de abono funcione correctamente, que los campos se completen según el medio seleccionado y que el abono se registre sin errores.
Precondiciones
- Usuario autenticado mediante el comando
cy.login(). - Acceso al dashboard del sistema
(/dashboard).. - Existencia de registros en Cuentas por pagar – Egresos para aplicarles un abono.
Pasos Generales
- Ingresar al módulo de Cuentas por pagar – Egresos..
- Abrir el modal de abono del primer registro disponible.
-
Completar los campos requeridos en el formulario del modal:
-
Monto del abono.
- Medio de pago (efectivo, tarjeta o transferencia).
-
Tipo de transferencia (solo si aplica).
-
Guardar el abono.
- Verificar que el modal se cierre automáticamente.
Resultado Esperado
- El modal de abono debe abrirse correctamente para el registro seleccionado.
- Los campos del formulario deben aceptar el valor ingresado:
- El monto debe registrarse correctamente.
- El medio de pago debe seleccionarse de la lista disponible.
- Si el medio de pago es Transferencia, debe mostrarse y seleccionarse el tipo de transferencia.
- Al guardar, el modal debe cerrarse y el abono debe registrarse sin errores.
Explicación Detallada del Código
Variables de prueba
const montoAbono = "2000";
const pagos = [
{ medio: "Efectivo" },
{ medio: "Tarjeta" },
{ medio: "Transferencia", tipo: "Bancolombia" },
];
Explicación
montoAbono→ define el valor fijo que se usará para cada abono (2000).pagos→ arreglo que contiene la configuración de cada medio de pago a probar:`- Efectivo → no requiere datos adicionales.
- Tarjeta → selección simple desde el dropdown.
- Transferencia → requiere además elegir el tipo (ejemplo: Bancolombia).
Iteración de escenarios de abono
pagos.forEach((pago) => {
it(`Debe realizar un abono usando medio de pago: ${pago.medio}`, () => {
cy.visit("/cuentaspagar-egresos");
cy.get('button[onclick^="mostrarModalAbono"]').first().click();
});
});
Explicación
- Se utiliza
forEachpara recorrer el arreglopagos. - Para cada medio de pago, se genera un caso de prueba independiente usando
it(...). - El título de la prueba se construye dinámicamente mostrando el medio de pago en uso.
- Se navega directamente al módulo
/cuentaspagar-egresos, donde se listan los registros que permiten realizar abonos. - Se selecciona el primer botón disponible con el atributo
onclickque inicia con"mostrarModalAbono". - Se hace clic para abrir el modal de abono correspondiente al primer registro de la tabla.
Completar formulario dentro del modal
cy.get("div#modalAbono")
.should("be.visible")
.within(() => {
// Ingresar monto
cy.get("#monto_abono")
.clear({ force: true })
.type(montoAbono, { delay: 0 });
// Seleccionar medio de pago
cy.get("#medio_pago").select(pago.medio);
// Solo si es transferencia, seleccionar tipo
if (pago.medio === "Transferencia") {
cy.get("#tipoTransferencia").select(pago.tipo);
}
// Guardar cambios
cy.get("div.modal-footer button.btn.btn-primary").click();
});
Explicación
- Se asegura que el modal con ID
modalAbonoesté visible antes de interactuar. - Monto del abono: se limpia y se escribe el valor definido en la variable
montoAbono. - Medio de pago: se selecciona desde el dropdown
#medio_pago. - Transferencia: si el medio es Transferencia, se habilita un campo adicional
#tipoTransferenciapara seleccionar el banco. - Finalmente, se hace clic en el botón principal del modal para guardar el abono.
Validar cierre del modal
Explicación
- Se valida que el modal de abono se cierre automáticamente después de guardar, lo que indica que el proceso fue exitoso.
Resultados de la ejecución de la prueba
| Escenario | Medio de Pago | Tipo Transferencia | Monto | Estado |
|---|---|---|---|---|
| 1 | Efectivo | — | 2000 | PASS |
| 2 | Tarjeta | — | 2000 | PASS |
| 3 | Transferencia | Bancolombia | 2000 | PASS |