Skip to content

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

  1. Ingresar al módulo de Cuentas por pagar – Egresos..
  2. Abrir el modal de abono del primer registro disponible.
  3. Completar los campos requeridos en el formulario del modal:

  4. Monto del abono.

  5. Medio de pago (efectivo, tarjeta o transferencia).
  6. Tipo de transferencia (solo si aplica).

  7. Guardar el abono.

  8. 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 forEach para recorrer el arreglo pagos.
  • 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 onclick que 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 modalAbono esté 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 #tipoTransferencia para seleccionar el banco.
  • Finalmente, se hace clic en el botón principal del modal para guardar el abono.

Validar cierre del modal

cy.get("div#modalAbono").should("not.be.visible");

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