El fixtureDocumentation 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.
paginaAutenticada es la base de toda la suite de automation-arqc. En lugar de ejecutar el flujo completo de login Angular en cada test (que implica dos pasos con reintentos y navegación pesada), este fixture lee la sesión ya autenticada desde playwright/.auth/user.json, la inyecta directamente en el sessionStorage del navegador mediante page.addInitScript(), y navega a la aplicación — todo antes de que el test reciba la página. El resultado es que cada test arranca ya autenticado, sin repetir la secuencia de credenciales, lo que reduce el tiempo de setup por test a menos de tres segundos.
fixtures/index.js — punto de entrada recomendado
Para la mayoría de los tests, la importación correcta es desde fixtures/index.js. Este archivo re-exporta el test extendido con paginaAutenticada y sirve como punto de entrada unificado que evita importar auth.fixture.js directamente.
fixtures/index.js es:
fixtures/index.js
Fixture paginaAutenticada
| Propiedad | Valor |
|---|---|
| Scope | Por defecto (per-test) |
| Definido en | fixtures/auth.fixture.js |
| Exportado desde | fixtures/index.js |
| Parámetro de Playwright | { page } del base test |
Secuencia de setup
Cuando Playwright configura el fixture antes de cada test, ejecuta los siguientes pasos en orden:- Lee
playwright/.auth/user.jsonusandoreadFileSync— este archivo contiene el objeto{ sessionStorage: { ... } }generado porglobal-setup.jsdurante el login inicial. - Inyecta las claves de sessionStorage mediante
page.addInitScript(), que registra un script que corre en el contexto del navegador antes de que se cargue cualquier página — garantizando que Angular encuentra la sesión ya presente desde el primer frame. - Navega a
process.env.BASE_URLconwaitUntil: 'domcontentloaded'para no bloquear en recursos lentos sobre VPN. - Espera que la URL coincida con
**/modulos**— confirma que Angular completó el redirect de autenticación y cargó el módulo principal. - Espera que
.mat-drawer-inner-containersea visible — confirma que el shell de Angular Material está listo para la interacción. - Cede la página autenticada al test vía
use(page).
Código fuente completo
fixtures/auth.fixture.js
auth.fixture.js vs fixtures/index.js
Estos dos archivos cumplen roles distintos y complementarios:
-
auth.fixture.jsdefine la extensión del fixture. Contiene toda la lógica de lectura deuser.json, inyección de sessionStorage y espera de carga Angular. Es la fuente de verdad del comportamiento de autenticación. -
fixtures/index.jsactúa como punto de entrada unificado para los tests. Re-exporta{ test, expect }desdeauth.fixture.jssin añadir lógica. Los fixtures de datos de Reteica (tercero.fixture.js,contribuyente.fixture.js,establecimiento.fixture.js) extienden sobreauth.fixture.jsdirectamente en lugar de pasar porindex.js, porque necesitan añadir más fixtures encadenados sobre la misma base.
index.js. Si necesita entidades Reteica ya creadas, importa desde el fixture específico.
Cuándo usar cada punto de entrada
| Escenario | Importar desde |
|---|---|
| Test de componente (CRUD de una sola pantalla) | fixtures/index.js |
| Test de login o navegación básica | fixtures/index.js |
| Test que necesita un Tercero precreado | fixtures/reteica/tercero.fixture.js |
| Test que necesita un Contribuyente precreado | fixtures/reteica/contribuyente.fixture.js |
| Flujo E2E de declaración (necesita Establecimiento) | fixtures/reteica/establecimiento.fixture.js |
paginaAutenticada está disponible — los fixtures de Reteica lo heredan a través de la cadena de extensión y lo exponen al test bajo el mismo nombre.