Skip to content

Prueba: Terceros – Registro de Terceros

Objetivo

Verificar que el sistema permita registrar nuevos terceros de forma correcta en las distintas categorías disponibles,asegurando que todos los campos del formulario sean completados correctamente, que el modal se cierre automáticamente al guardar, y que no se presenten errores en el proceso de registro.


Precondiciones

  • Usuario autenticado mediante el comando cy.login().
  • Acceso al dashboard del sistema (/dashboard).
  • El módulo de Terceros debe estar disponible y funcional.

Pasos Generales

  1. Ingresar al sistema y acceder al módulo Terceros.
  2. Abrir el modal Agregar Tercero.
  3. Completar todos los campos obligatorios del formulario con los datos correspondientes al escenario.
  4. Seleccionar las opciones desplegables:
  5. Categoría del tercero.
  6. Tipo de persona.
  7. Tipo de identificación.
  8. Departamento y ciudad.
  9. Hacer clic en el botón Guardar.
  10. Verificar que el modal se cierre automáticamente tras el registro.
  11. Confirmar que no se presenten errores de validación ni en consola.

Resultado Esperado

  • El modal Agregar Tercero se abre correctamente.
  • Los campos del formulario se muestran según la categoría y tipo de persona seleccionados.
  • El sistema permite registrar correctamente cada tipo de tercero.
  • El modal se cierra automáticamente al guardar.
  • No se presentan errores de validación ni mensajes inesperados.

Explicación Detallada del Código

Definición de Escenarios de Prueba

const escenarios = [
  {
    categoria: "cliente",
    tipoPersona: "natural",
    tipoIdentificacion: "Cédula de ciudadania",
    numeroIdentificacion: "1234567891",
    nombre: "Pepito Perez",
    correo: "pepito.perez@example.com",
    contacto: "3012234567",
    direccion: "Calle 12 #45-64",
    departamento: "Sucre",
    ciudad: "Sincelejo",
  },
  {
    categoria: "proveedor",
    tipoPersona: "juridica",
    tipoIdentificacion: "NIT",
    numeroIdentificacion: "900123456-1",
    nombre: "Proveedor SAS",
    correo: "contacto@proveedor.com",
    contacto: "3019876543",
    direccion: "Carrera 10 #34-56",
    departamento: "Bolívar",
    ciudad: "Cartagena",
  },
  {
    categoria: "empleado",
    tipoPersona: "natural",
    tipoIdentificacion: "Cédula de ciudadania",
    numeroIdentificacion: "9876543211",
    nombre: "Juan Pérez",
    correo: "juan.perez@example.com",
    contacto: "3123456789",
    direccion: "Calle 5 #12-34",
    departamento: "Córdoba",
    ciudad: "Montería",
  },
  {
    categoria: "otro",
    tipoPersona: "juridica",
    tipoIdentificacion: "NIT",
    numeroIdentificacion: "900987654-2",
    nombre: "Organización XYZ",
    correo: "info@organizacionxyz.com",
    contacto: "3001234567",
    direccion: "Av. 20 #30-40",
    departamento: "Atlántico",
    ciudad: "Barranquilla",
  },
];

Explicación

  • Se definen los cuatro escenarios representativos del módulo Terceros.
  • Cada objeto contiene la información que se ingresará en el formulario.

Iteración sobre los Escenarios

escenarios.forEach((tercero) => {
    it(`Debe registrar un nuevo tercero: ${tercero.nombre}`, () => {
        // Ir al módulo de Terceros
        cy.visit("/terceros");
        cy.url().should("include", "/terceros");

Explicación

  • El test genera dinámicamente un it() por cada escenario definido.
  • Se visita el módulo /terceros y se valida que la URL sea correcta antes de continuar.`
  • El nombre del test muestra el nombre del tercero, facilitando la identificación en los reportes.

Apertura del Modal

cy.get('button[data-target="#modalAgregarTerceroPuro"]').click();
cy.get("#modalAgregarTerceroPuro").should("be.visible");

Explicación

  • Se hace clic en el botón de agregar nuevo tercero.
  • Se valida que el modal esté visible antes de comenzar a llenar los datos.

Llenado del Formulario

cy.get("#categoria").select(tercero.categoria);
cy.get("#tipo_persona").select(tercero.tipoPersona);
cy.get("#tipo_iden").select(tercero.tipoIdentificacion);
cy.get("#num_iden").clear().type(tercero.numeroIdentificacion);
cy.get("#nombre").clear().type(tercero.nombre);
cy.get("#correo").clear().type(tercero.correo);
cy.get("#num_contact").clear().type(tercero.contacto);
cy.get("#direccion").clear().type(tercero.direccion);
cy.get("#departamento").select(tercero.departamento);
cy.get("#ciudad").select(tercero.ciudad);

Explicación

  • Se llenan todos los campos del formulario con los valores definidos en el objeto tercero.
  • Se limpia cada campo antes de escribir (.clear()) para evitar errores de datos residuales.
  • Se usan selects nativos (.select()) para los campos de tipo lista.

Guardar el Registro y Validar Cierre del Modal

cy.get(
  '#modalAgregarTerceroPuro button[type="submit"].btn.btn-primary'
).click();
cy.get("#modalAgregarTerceroPuro").should("not.be.visible");

Explicación

  • Se hace clic en el botón Guardar dentro del modal.
  • Se valida que el modal se cierre correctamente, lo que indica que la acción fue procesada por el sistema.
  • El cierre automático del modal es la señal principal de éxito en esta prueba.

Resultados de la ejecución de la prueba

Escenario Categoría Tipo de Persona Tipo de Identificación Nombre del Tercero Resultado
1 Cliente Natural Cédula de ciudadanía Pepito Pérez PASS
2 Proveedor Jurídica NIT Proveedor SAS PASS
3 Empleado Natural Cédula de ciudadanía Juan Pérez PASS
4 Otro Jurídica NIT Organización XYZ PASS