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
- Ingresar al sistema y acceder al módulo Terceros.
- Abrir el modal Agregar Tercero.
- Completar todos los campos obligatorios del formulario con los datos correspondientes al escenario.
- Seleccionar las opciones desplegables:
- Categoría del tercero.
- Tipo de persona.
- Tipo de identificación.
- Departamento y ciudad.
- Hacer clic en el botón Guardar.
- Verificar que el modal se cierre automáticamente tras el registro.
- 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
/tercerosy 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 |