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.

Las etiquetas son el mecanismo principal de filtrado de automation-arqc. Determinan qué tests corren en cada escenario: un npm run test:smoke en local, un grep en la CLI de Playwright, o un parámetro TEST_SUITE en el pipeline de Jenkins. Cada test lleva un conjunto de etiquetas que describe su nivel de prueba, su suite de pertenencia, el módulo que toca, y (en modo Deployment) la entidad municipal para la que aplica. Esta combinación permite ejecutar exactamente el subconjunto de tests necesario sin editar ningún archivo de configuración.

Etiquetas de nivel

Cada test debe llevar exactamente una etiqueta de nivel — indica el tipo de prueba y determina en qué subcarpeta debe vivir el spec.
TagCuándo usarCarpeta
@componenteTest de una sola pantalla (CRUD básico): crea, lee, edita, elimina dentro del mismo módulo sin navegar a otra pantallasuites/<Modulo>/
@e2eFlujo multi-pantalla que simula un proceso real de usuario: cruza dos o más módulos o sub-formularios para completar una tarea de negociosuites/<Modulo>/e2e/

Etiquetas de tipo de caso

Describen la naturaleza del escenario de prueba. Un test puede combinar una etiqueta de tipo con las de suite y módulo.
TagCuándo usar
@crudTest que ejerce operaciones de Crear, Leer, Editar o Eliminar sobre un registro
@searchTest que verifica el comportamiento del filtro o la búsqueda en el listado
@negativeTest que valida que el sistema rechaza correctamente una entrada inválida o una operación no permitida
@boundaryTest de valor límite — verifica el comportamiento exactamente en el borde del rango permitido (ej. máximo de caracteres)

Etiquetas de suite

Controlan qué conjunto de tests selecciona Jenkins según el parámetro TEST_SUITE del pipeline.
TagDescripciónParámetro Jenkins
@smokeTests críticos de humo — cobertura mínima de funcionalidad crítica, ejecución rápida (menos de 5 minutos total)TEST_SUITE=smoke
@regressionTests de regresión completos — cobertura amplia de casos positivos y negativosTEST_SUITE=regression
@criticalTests de funcionalidad crítica que no pueden fallar en producciónTEST_TYPE=critical
@tagpruebaTests de humo legacy usados por npm run test:smoke — equivalente histórico de @smoke para compatibilidad con scripts existentes

Etiquetas de módulo

Permiten filtrar por módulo del sistema tributario. Un test puede llevar más de una etiqueta de módulo si toca varios módulos en un flujo E2E.
TagMódulo
@tercerosMódulo Terceros (Reteica → Archivos → Terceros)
@contribuyentesMódulo Contribuyentes (Reteica → Archivos → Contribuyentes)
@reteicaCualquier módulo que pertenece al área de Reteica
@loginSuite de Login y autenticación

Etiquetas de entidad

Usadas exclusivamente en Deployment Mode para filtrar qué tests aplican a cada municipio o entidad configurada en el pipeline Jenkins.
TagEntidad
@pastoMunicipio de Pasto
@corpoboyacaCorpoboyaca
@todas_entidadesEl test aplica a cualquier entidad — se ejecuta en todos los deployments

Cómo aplicar etiquetas a un test

Las etiquetas se pasan como valor de la propiedad tag en el segundo argumento del test. Se acepta un string con múltiples tags separados por espacios:
test(
  'TC-TER-01 — Navegación y carga del listado',
  { tag: '@smoke @terceros @reteica @tagprueba' },
  async ({ paginaAutenticada: page }) => {
    // ...
  }
);
Para tests E2E con fixture de datos:
test(
  'TC-DEC-001 — Happy Path presentar declaración',
  { tag: '@e2e @contribuyentes @reteica @regression' },
  async ({ paginaAutenticada: page, establecimientoData }) => {
    const { seed, razonSocial, nombreEstablecimiento } = establecimientoData;
    // ...
  }
);

Filtrar desde la CLI

Playwright acepta el flag --grep con una expresión regular para seleccionar tests por etiqueta. Esto funciona en local y es el mismo mecanismo que usa Jenkins internamente:
# Solo tests de humo
npx playwright test --grep "@smoke"

# Solo flujos E2E
npx playwright test --grep "@e2e"

# Solo módulo Terceros
npx playwright test --grep "@terceros"

# Solo tests de componente del módulo Contribuyentes
npx playwright test --grep "@componente.*@contribuyentes"

# Smoke tests de cualquier módulo Reteica
npx playwright test --grep "@smoke.*@reteica"

# Excluir tests de login (grep inverso)
npx playwright test --grep-invert "@login"
También puedes combinar con la ruta de un archivo o directorio específico:
# Correr solo el spec de terceros
npx playwright test suites/Reteica/terceros.spec.js

# Correr los flujos E2E de Reteica con tag regression
npx playwright test suites/Reteica/e2e/ --grep "@regression"

Scripts npm predefinidos

Los scripts en package.json encapsulan los patrones de filtrado más comunes:
npm run test              # Todos los tests
npm run test:smoke        # --grep "@tagprueba"
npm run test:login        # Suite de Login
npm run test:headed       # Todos los tests con navegador visible
Para lógica AND entre dos etiquetas (por ejemplo, tests que tengan @smoke Y @reteica), usa lookahead positivo en el patrón regex: --grep "(?=.*@smoke)(?=.*@reteica)". El operador .* con un solo @tag en el patrón actúa como OR implícito — cualquier test que contenga ese tag en cualquier posición del string de tags hace match.

Build docs developers (and LLMs) love