aria-label was removed because the visible span already provides the text Signed-off-by: Cyril <c.gromoff@gmail.com>
148 lines
4.2 KiB
TypeScript
148 lines
4.2 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { overrideConfig } from './utils-common';
|
|
|
|
test.describe('Footer', () => {
|
|
test.use({ storageState: { cookies: [], origins: [] } });
|
|
|
|
test('checks the footer is not displayed if no config', async ({ page }) => {
|
|
await overrideConfig(page, {
|
|
theme_customization: {},
|
|
});
|
|
|
|
await page.goto('/');
|
|
await expect(page.locator('footer')).toBeHidden();
|
|
});
|
|
|
|
test('checks all the elements are visible', async ({ page }) => {
|
|
await page.goto('/');
|
|
const footer = page.locator('footer').first();
|
|
|
|
await expect(footer.getByAltText('Docs Logo')).toBeVisible();
|
|
await expect(footer.getByRole('heading', { name: 'Docs' })).toBeVisible();
|
|
|
|
await expect(footer.getByRole('link', { name: 'GitHub' })).toBeVisible();
|
|
await expect(footer.getByRole('link', { name: 'DINUM' })).toBeVisible();
|
|
await expect(footer.getByRole('link', { name: 'ZenDiS' })).toBeVisible();
|
|
|
|
await expect(
|
|
footer.getByRole('link', { name: 'BlockNote.js' }),
|
|
).toBeVisible();
|
|
await expect(
|
|
footer.getByRole('link', { name: 'Legal Notice' }),
|
|
).toBeVisible();
|
|
await expect(
|
|
footer.getByRole('link', { name: 'Personal data and cookies' }),
|
|
).toBeVisible();
|
|
await expect(
|
|
footer.getByRole('link', { name: 'Accessibility' }),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
footer.getByText(
|
|
'Unless otherwise stated, all content on this site is under licence',
|
|
),
|
|
).toBeVisible();
|
|
|
|
// Check the translation
|
|
const header = page.locator('header').first();
|
|
await header.getByRole('button').getByText('English').click();
|
|
await page.getByRole('menuitem', { name: 'Français' }).click();
|
|
|
|
await expect(
|
|
page.locator('footer').getByText('Mentions légales'),
|
|
).toBeVisible();
|
|
});
|
|
|
|
test('checks the footer is correctly overrided', async ({ page }) => {
|
|
await overrideConfig(page, {
|
|
FRONTEND_THEME: 'dsfr',
|
|
theme_customization: {
|
|
footer: {
|
|
default: {
|
|
logo: {
|
|
src: '/assets/logo-gouv.svg',
|
|
width: '220px',
|
|
alt: 'Gouvernement Logo',
|
|
},
|
|
externalLinks: [
|
|
{
|
|
label: 'legifrance.gouv.fr',
|
|
href: '#',
|
|
},
|
|
{
|
|
label: 'info.gouv.fr',
|
|
href: '#',
|
|
},
|
|
],
|
|
legalLinks: [
|
|
{
|
|
label: 'Legal link',
|
|
href: '#',
|
|
},
|
|
],
|
|
bottomInformation: {
|
|
label: 'Some bottom information text',
|
|
link: {
|
|
label: 'a custom label',
|
|
href: '#',
|
|
},
|
|
},
|
|
},
|
|
fr: {
|
|
bottomInformation: {
|
|
label: "Text d'information en bas de page en français",
|
|
link: {
|
|
label: 'un label personnalisé',
|
|
href: '#',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
await page.goto('/');
|
|
const footer = page.locator('footer').first();
|
|
|
|
await expect(footer.getByAltText('Gouvernement Logo')).toBeVisible();
|
|
|
|
await expect(footer.getByRole('heading', { name: 'Docs' })).toBeHidden();
|
|
|
|
await expect(
|
|
footer.getByRole('link', { name: 'legifrance.gouv.fr' }),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
footer.getByRole('link', { name: 'info.gouv.fr' }),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
footer.getByRole('link', { name: 'Legal link' }),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
footer.getByText('Some bottom information text'),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
footer.getByRole('link', { name: 'a custom label' }),
|
|
).toBeVisible();
|
|
|
|
// Check the translation
|
|
const header = page.locator('header').first();
|
|
await header.getByRole('button').getByText('English').click();
|
|
await page.getByRole('menuitem', { name: 'Français' }).click();
|
|
|
|
await expect(
|
|
page
|
|
.locator('footer')
|
|
.getByText("Text d'information en bas de page en français"),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
footer.getByRole('link', { name: 'un label personnalisé' }),
|
|
).toBeVisible();
|
|
});
|
|
});
|