Skip to content

Prueba: Ingresos – Eliminar Cotizacion

Objetivo

Verificar que el sistema permita eliminar correctamente varias cotizaciones desde la tabla de cotizaciones.


Precondiciones

  • Usuario autenticado mediante el comando cy.login().
  • Acceso al dashboard del sistema (/dashboard).
  • Deben existir al menos 3 cotizaciones registradas en la tabla.
  • El sistema debe mostrar correctamente los botones de eliminación en cada fila de la tabla.

Pasos Generales

  1. Navegar al módulo de Cotizaciones (/cliente/cotizaciones).
  2. Ubicar las primeras tres cotizaciones de la tabla.
  3. En cada una, hacer clic en el botón Eliminar.
  4. Confirmar la acción en el modal emergente de SweetAlert2 seleccionando “Sí, eliminar”.
  5. Esperar que el modal se cierre y la tabla se actualice.
  6. Repetir el proceso hasta eliminar las tres primeras cotizaciones.

Resultado Esperado

  • Cada cotización seleccionada debe eliminarse correctamente.
  • El modal de confirmación debe cerrarse tras aceptar la eliminación.
  • La tabla debe actualizarse visualmente mostrando una fila menos después de cada eliminación.
  • No deben aparecer errores en consola ni fallas de script.

Explicación Detallada del Código

Visitar el modulo de cotizaciones

cy.visit("/cliente/cotizaciones");

Explicación

  • cy.visit("/cliente/cotizaciones") sitúa el test en la página de cotizaciones donde está el botón para crear nueva cotización.implementación

Eliminación de las tres primeras cotizaciones

it("Eliminar las primeras 3 cotizaciones de la tabla", () => {
    for (let i = 0; i < 3; i++) {
        cy.get(".table-cotizaciones tbody tr")
            .eq(0)
            .within(() => {
                cy.get('button[title="Eliminar"]').click();
            });
    });

Explicación

  • Se utiliza un bucle for para eliminar tres cotizaciones consecutivamente.
  • cy.get(...).eq(0): Siempre selecciona la primera fila actual (la tabla se actualiza tras cada eliminación, por lo que la siguiente cotización pasa a ocupar la posición 0).
  • Dentro de la fila seleccionada, se busca el botón con el atributo title="Eliminar" y se hace clic.

Confirmación de eliminación (SweetAlert2)

cy.get(".swal2-container.swal2-center.swal2-backdrop-show", {
  timeout: 10000,
})
  .contains("Sí, eliminar")
  .click();

Explicación

  • Localiza el modal emergente generado por SweetAlert2.
  • Espera hasta 10 segundos si es necesario.
  • Dentro del modal, hace clic en el botón de confirmación “Sí, eliminar”.

Validación posterior a la eliminación

cy.get(".swal2-container.swal2-center.swal2-backdrop-show").should("not.exist");
cy.wait(500);

Explicación

  • erifica que el modal se haya cerrado correctamente (ya no existe en el DOM).
  • Espera 0.5 segundos para que la tabla de cotizaciones se actualice antes de pasar al siguiente ciclo del bucle.

Resultados de la ejecución de la prueba

# Acción Resultado esperado Estado
1 Clic en botón “Eliminar” de la primera cotización Se abre modal de confirmación PASS