Pruebas: apuntar a cualquier despliegue con BASE y no fijar el orden del tabulador
playwright.config.mjs toma BASE del entorno, y cuando no es local no arranca ningun servidor. Asi la misma suite verifica el portal ya desplegado. La prueba de teclado esperaba que el segundo Tab cayera en una tarjeta de acceso; contra un servidor remoto las tarjetas todavia no estaban pintadas y el foco caia en otra cosa. Ahora espera a que existan, tabula hasta alcanzarlas y comprueba ademas que el foco se vea. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1ae2e9c010
commit
20eb73d4aa
+19
-4
@@ -503,12 +503,27 @@ test.describe('Legibilidad y responsividad', () => {
|
||||
|
||||
test('se puede navegar con el teclado desde la entrada', async ({ page }) => {
|
||||
await page.goto('/');
|
||||
await page.keyboard.press('Tab');
|
||||
await page.keyboard.press('Tab');
|
||||
const enfocado = await page.evaluate(() => document.activeElement?.className ?? '');
|
||||
expect(enfocado).toContain('tarjeta-rol');
|
||||
// Hay que esperar a que las tarjetas existan: se pintan cuando responde
|
||||
// la API, y tabular antes deja el foco en cualquier otra cosa.
|
||||
await expect(page.locator('.tarjeta-rol').first()).toBeVisible();
|
||||
|
||||
// Se tabula hasta llegar a una tarjeta de acceso, sin fijar cuántos
|
||||
// saltos hacen falta: lo que se prueba es que sea alcanzable, no la
|
||||
// posición exacta en el orden.
|
||||
let enTarjeta = false;
|
||||
for (let i = 0; i < 8 && !enTarjeta; i++) {
|
||||
await page.keyboard.press('Tab');
|
||||
enTarjeta = await page.evaluate(() => Boolean(document.activeElement?.closest?.('.tarjeta-rol')));
|
||||
}
|
||||
expect(enTarjeta, 'las tarjetas de acceso deben alcanzarse con el tabulador').toBeTruthy();
|
||||
|
||||
// Y el foco tiene que verse.
|
||||
const contorno = await page.evaluate(() => getComputedStyle(document.activeElement).outlineStyle);
|
||||
expect(contorno).not.toBe('none');
|
||||
|
||||
await page.keyboard.press('Enter');
|
||||
await page.waitForURL('**/portal');
|
||||
await expect(page.locator('.barra__nav .nav-item').first()).toBeVisible();
|
||||
});
|
||||
|
||||
test('Escape cierra la ventana de edición sin guardar', async ({ page }) => {
|
||||
|
||||
Reference in New Issue
Block a user