Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Giofelix/Proyecto-automatizacion-Empresa/llms.txt

Use this file to discover all available pages before exploring further.

El proyecto automation-arqc organiza sus archivos siguiendo una separación estricta de responsabilidades: los page objects modelan la interfaz, los fixtures gestionan el ciclo de vida de la sesión y los datos de prueba, y las suites contienen únicamente la lógica de los tests. Esta división permite escalar el proyecto a nuevos módulos sin modificar lo que ya funciona, y hace que cada archivo tenga exactamente una razón para cambiar.

Árbol de directorios

fixtures/
  index.js                         # Punto de entrada base: expone paginaAutenticada
  auth.fixture.js                  # Fixture de autenticación (inyecta sessionStorage)
  reteica/
    tercero.fixture.js             # Fixture con tercero precreado para Reteica
    contribuyente.fixture.js       # Fixture con contribuyente precreado para Reteica
    establecimiento.fixture.js     # Fixture con establecimiento precreado para Reteica

pages/
  login/
    login.page.js                  # Flujo de login Angular (dos pasos con reintentos)
  common/
    menu-navegacion.js             # Navegación por acordeón de Angular Material
    acciones-crud.js               # Botones CRUD reutilizables (Agregar, Guardar, etc.)
    componentes-tabla.js           # Controles de tabla: filtro, paginación, selección
    acciones-declaracion-renta.js  # Acciones específicas para declaraciones de renta
  modulos/
    reteica/
      archivos/
        terceros.page.js           # POM completo del módulo Terceros
        conceptos.page.js          # POM del módulo Conceptos
        contribuyentes/
          contribuyentes.page.js                           # POM del módulo Contribuyentes
          menu-procesos-contribuyentes/
            establecimientos.page.js                       # POM subformulario Establecimientos
            presentar-declaracion.page.js                  # POM subformulario Declaración

suites/
  Reteica/
    terceros.spec.js               # CRUD Terceros (@componente)
    contribuyentes.spec.js         # CRUD Contribuyentes (@componente)
    establecimientos.spec.js       # CRUD Establecimientos (@componente)
    conceptos.spec.js              # CRUD Conceptos (@componente)
    e2e/
      flujo-declaracion-contribuyente.spec.js   # Proceso completo (@e2e)

playwright/
  global-setup.js        # Login único que cachea sessionStorage
  global-teardown.js     # Cierra sesión y elimina user.json al finalizar la suite
  .auth/
    user.json            # Sesión cacheada (gitignored)

Principios de organización

¿Por qué pages/common/ separado de pages/modulos/? Las páginas comunes (menu-navegacion.js, acciones-crud.js, componentes-tabla.js) encapsulan elementos que aparecen en todas las pantallas del sistema: el acordeón de navegación lateral, los botones CRUD del toolbar y los controles de la tabla paginada. Separarlas evita duplicación: si el selector del botón de filtro cambia en producción, solo se actualiza componentes-tabla.js y todas las suites se benefician automáticamente. Las páginas de módulo, en cambio, modelan formularios específicos (pestañas, combos, campos de un dominio concreto) y tienen una jerarquía que refleja la navegación real del sistema. ¿Por qué fixtures/ tiene su propia carpeta y sub-carpeta reteica/? Los fixtures son infraestructura de prueba, no lógica de aplicación. Tenerlos en su propio árbol deja claro que auth.fixture.js provee la sesión base y que los fixtures de datos (tercero.fixture.js, contribuyente.fixture.js, establecimiento.fixture.js) son capas que se apilan sobre esa sesión. La sub-carpeta reteica/ anticipa que en el futuro podrían existir fixtures para otros módulos (Predial, ICA, etc.) sin mezclarlos. ¿Por qué las suites espejean la estructura de módulos? La carpeta suites/Reteica/ tiene exactamente un archivo .spec.js por pantalla modelada en pages/modulos/reteica/. Esta correspondencia uno-a-uno facilita navegar: si un test falla en terceros.spec.js, el desarrollador sabe que el page object relevante está en pages/modulos/reteica/archivos/terceros.page.js. Los flujos multi-pantalla viven en suites/Reteica/e2e/ para dejar claro que cruzan varias capas del sistema.

Explora más

Page Objects

Cómo están diseñadas las clases POM comunes y de módulo.

Fixtures

Ciclo de vida de autenticación y datos de prueba con setup/teardown automático.

Test Suites

Niveles de test, etiquetado obligatorio y sintaxis BDD con gherkin-lite.

Ejecutar Tests

Comandos npm, filtros por tag y pipeline de Jenkins.

Build docs developers (and LLMs) love