You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
senzapaura_es/e2e/panel.e2e.ts

55 lines
2.1 KiB

import { expect, test } from '@playwright/test';
/*
* El panel, desde fuera.
*
* Corre contra su propio servidor —el proyecto «panel» de la configuración—,
* que es otra aplicación compilada aparte. Aquí solo se comprueba la puerta:
* quién puede pasar una vez dentro lo deciden `esAdmin` y `exigirAdmin`, y eso
* se prueba en `administracion.spec.ts`, donde se pueden montar las tres
* situaciones sin necesitar un buzón de correo.
*/
test.describe('El panel', () => {
test('sin sesión no se ve, se manda a entrar', async ({ page }) => {
await page.goto('/');
await expect(page).toHaveURL(/\/entrar/);
await expect(page.getByRole('heading', { name: 'Panel' })).toBeVisible();
await expect(page.getByLabel('Correo')).toBeVisible();
});
test('y se vuelve a donde se iba, no a la portada', async ({ page }) => {
await page.goto('/?ver=pendientes');
const url = new URL(page.url());
expect(url.pathname).toBe('/entrar');
expect(url.searchParams.get('volverA')).toBe('/?ver=pendientes');
});
test('no dice qué cuenta administra', async ({ page }) => {
// La respuesta es la misma exista o no la cuenta. Si dijera «esa cuenta no
// administra», el formulario sería una forma cómoda de averiguar cuál sí.
await page.goto('/entrar');
await page.getByLabel('Correo').fill('nadie-de-aqui@example.com');
await page.getByRole('button', { name: 'Mandar el código' }).click();
await expect(page.getByText(/si esa cuenta administra/i)).toBeVisible();
await expect(page.getByLabel('Código')).toBeVisible();
});
test('nada de aquí se indexa', async ({ request }) => {
const robots = await request.get('/robots.txt');
expect(await robots.text()).toContain('Disallow: /');
});
test('no lleva la navegación del sitio', async ({ page }) => {
// Es una herramienta, no una página de la web: sin cabecera de secciones,
// sin reproductor y sin pie.
await page.goto('/entrar');
await expect(page.getByRole('navigation', { name: 'Principal' })).toHaveCount(0);
await expect(page.getByRole('region', { name: 'Reproductor' })).toHaveCount(0);
await expect(page.locator('footer')).toHaveCount(0);
});
});

Powered by TurnKey Linux.