Skip to content

Prueba: Ingresos – Eliminar registro

Objetivo

Validar que el sistema permita eliminar un ingreso existente desde el listado de ingresos, confirmando la acción mediante SweetAlert2.


Precondiciones

  • Usuario autenticado mediante el comando cy.login().
  • Acceso al dashboard del sistema (/dashboard).
  • Existencia de ingresos registrados en el sistema.
  • El ingreso a eliminar debe encontrarse visible en la lista (en este caso, el noveno ingreso)

Pasos Generales

  1. Ingresar al módulo de Ingresos.
  2. (Opcional) Navegar a la segunda página de la tabla
  3. Seleccionar el noveno ingreso y hacer clic en el botón de eliminar.
  4. Confirmar la acción en SweetAlert2.
  5. Validar que el ingreso se elimine y el modal de confirmación se cierre correctamente.

Resultado Esperado

  • El ingreso seleccionado debe eliminarse del listado.
  • El popup de confirmación (SweetAlert2) debe cerrarse al aceptar.
  • El flujo debe completarse sin errores ni bloqueos.

Explicación Detallada del Código

it("Debe eliminar el noveno ingreso en la segunda página", () => {
  cy.visit("/ingresos");
});

Explicación

  • Se visita directamente la ruta /ingresos, donde se listan todos los ingresos registrados.

// --- Ir a la segunda página ---
// cy.get('a.page-link[rel="next"]').click();
// cy.get("table tbody tr").should("exist"); // esperar que carguen filas

Explicación

  • Este bloque está comentado, pero sirve en caso de que el ingreso a eliminar se encuentre en otra página.
  • cy.get('a.page-link[rel="next"]').click(); avanza de página.
  • cy.get("table tbody tr").should("exist"); espera que las filas estén disponibles antes de interactuar.

Seleccionar el ingreso y hacer clic en eliminar

// --- Click en el noveno botón de eliminar ---
cy.get('button.btn.btn-danger.btn-sm[data-original-title="Eliminar ingreso"]')
  .eq(9)
  .click();

Explicación

  • Se localiza el botón de eliminar de cada fila mediante su clase y atributo.
  • Con .eq(9) se selecciona específicamente el noveno botón (los índices empiezan en 0).
  • Y por ultimo se hace .click()con el cual simula que el usuario hace clic en Eliminar ingreso.

Confirmar la eliminación en SweetAlert2

// --- Confirmar SweetAlert2 ---
cy.get("div.swal2-popup.swal2-modal.swal2-icon-question.swal2-show").within(
  () => {
    cy.get("button.swal2-confirm.swal2-styled").click();
  }
);

Explicación

  • Al eliminar, se muestra un popup de SweetAlert2 pidiendo confirmación.
  • Con .within(...), se limita la interacción al popup visible.
  • Se localiza el botón de confirmación swal2-confirm y se hace clic, validando la acción.

Validar cierre del modal

// --- Validar que el modal se cerró ---
cy.get("div.swal2-popup").should("not.exist");
cy.get("div.swal2-loader").should("not.exist");

Explicación

  • Se comprueba que el popup de SweetAlert2 desaparezca (not.exist).
  • También se valida que el loader no siga activo.
  • Se localiza el botón de confirmación swal2-confirm y se hace clic, validando la acción.

Resultados de la ejecución de la prueba

Escenario Acción Estado
1 Eliminar noveno ingreso PASS