import { expect, test } from '@playwright/test';
test.describe('Footer', () => {
test.use({ storageState: { cookies: [], origins: [] } });
test('checks all the elements are visible', async ({ page }) => {
await page.goto('/');
const footer = page.locator('footer').first();
await expect(footer.getByAltText('Gouvernement Logo')).toBeVisible();
await expect(
footer.getByRole('link', { name: 'legifrance.gouv.fr' }),
).toBeVisible();
footer.getByRole('link', { name: 'info.gouv.fr' }),
footer.getByRole('link', { name: 'service-public.fr' }),
footer.getByRole('link', { name: 'data.gouv.fr' }),
footer.getByRole('link', { name: 'Legal Notice' }),
footer.getByRole('link', { name: 'Personal data and cookies' }),
footer.getByRole('link', { name: 'Accessibility' }),
footer.getByText(
'Unless otherwise stated, all content on this site is under licence',
),
});
const legalPages = [
{ name: 'Legal Notice', url: '/legal-notice/' },
{ name: 'Personal data and cookies', url: '/personal-data-cookies/' },
{ name: 'Accessibility', url: '/accessibility/' },
];
for (const { name, url } of legalPages) {
test(`checks ${name} page`, async ({ page }) => {
await footer.getByRole('link', { name }).click();
page
.getByRole('heading', {
name,
})
.first(),
await expect(page).toHaveURL(url);
}