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.
| Tag | Cuándo usar | Carpeta |
|---|
@componente | Test de una sola pantalla (CRUD básico): crea, lee, edita, elimina dentro del mismo módulo sin navegar a otra pantalla | suites/<Modulo>/ |
@e2e | Flujo multi-pantalla que simula un proceso real de usuario: cruza dos o más módulos o sub-formularios para completar una tarea de negocio | suites/<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.
| Tag | Cuándo usar |
|---|
@crud | Test que ejerce operaciones de Crear, Leer, Editar o Eliminar sobre un registro |
@search | Test que verifica el comportamiento del filtro o la búsqueda en el listado |
@negative | Test que valida que el sistema rechaza correctamente una entrada inválida o una operación no permitida |
@boundary | Test 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.
| Tag | Descripción | Parámetro Jenkins |
|---|
@smoke | Tests críticos de humo — cobertura mínima de funcionalidad crítica, ejecución rápida (menos de 5 minutos total) | TEST_SUITE=smoke |
@regression | Tests de regresión completos — cobertura amplia de casos positivos y negativos | TEST_SUITE=regression |
@critical | Tests de funcionalidad crítica que no pueden fallar en producción | TEST_TYPE=critical |
@tagprueba | Tests 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.
| Tag | Módulo |
|---|
@terceros | Módulo Terceros (Reteica → Archivos → Terceros) |
@contribuyentes | Módulo Contribuyentes (Reteica → Archivos → Contribuyentes) |
@reteica | Cualquier módulo que pertenece al área de Reteica |
@login | Suite 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.
| Tag | Entidad |
|---|
@pasto | Municipio de Pasto |
@corpoboyaca | Corpoboyaca |
@todas_entidades | El 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.