By default Docs will not be on the dsfr theme but on the generic theme. La Gaufre is part of the dsfr theme and is removed from the generic theme. Same for the "beta" keyword and the "proconnect" buttons.
125 lines
3.8 KiB
TypeScript
125 lines
3.8 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { overrideConfig } from './common';
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/docs/');
|
|
});
|
|
|
|
test.describe('Home page', () => {
|
|
test.use({ storageState: { cookies: [], origins: [] } });
|
|
test('checks all the elements are visible', async ({ page }) => {
|
|
await page.goto('/docs/');
|
|
|
|
// Check header content
|
|
const header = page.locator('header').first();
|
|
const footer = page.locator('footer').first();
|
|
await expect(header).toBeVisible();
|
|
await expect(
|
|
header.getByRole('button', { name: /Language/ }),
|
|
).toBeVisible();
|
|
await expect(header.getByRole('img', { name: 'Docs logo' })).toBeVisible();
|
|
await expect(header.getByRole('heading', { name: 'Docs' })).toBeVisible();
|
|
|
|
// Check the titles
|
|
const h2 = page.locator('h2');
|
|
await expect(h2.getByText('Govs ❤️ Open Source.')).toBeVisible();
|
|
await expect(
|
|
h2.getByText('Collaborative writing, Simplified.'),
|
|
).toBeVisible();
|
|
await expect(
|
|
h2.getByText('An uncompromising writing experience.'),
|
|
).toBeVisible();
|
|
await expect(
|
|
h2.getByText('Simple and secure collaboration.'),
|
|
).toBeVisible();
|
|
await expect(h2.getByText('Flexible export.')).toBeVisible();
|
|
await expect(
|
|
h2.getByText('A new way to organize knowledge.'),
|
|
).toBeVisible();
|
|
await expect(
|
|
page.getByRole('button', { name: 'Start Writing' }),
|
|
).toBeVisible();
|
|
|
|
await expect(footer).toBeVisible();
|
|
});
|
|
|
|
test('checks all the elements are visible with dsfr theme', async ({
|
|
page,
|
|
}) => {
|
|
await overrideConfig(page, {
|
|
FRONTEND_THEME: 'dsfr',
|
|
theme_customization: {
|
|
footer: {
|
|
default: {
|
|
externalLinks: [
|
|
{
|
|
label: 'legifrance.gouv.fr',
|
|
href: '#',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
await page.goto('/docs/');
|
|
|
|
// Check header content
|
|
const header = page.locator('header').first();
|
|
const footer = page.locator('footer').first();
|
|
await expect(header).toBeVisible();
|
|
await expect(
|
|
header.getByRole('button', { name: /Language/ }),
|
|
).toBeVisible();
|
|
await expect(
|
|
header.getByRole('button', { name: 'Les services de La Suite numé' }),
|
|
).toBeVisible();
|
|
await expect(
|
|
header.getByRole('img', { name: 'Gouvernement Logo' }),
|
|
).toBeVisible();
|
|
await expect(header.getByRole('img', { name: 'Docs logo' })).toBeVisible();
|
|
await expect(header.getByRole('heading', { name: 'Docs' })).toBeVisible();
|
|
await expect(header.getByText('BETA')).toBeVisible();
|
|
|
|
// Check the titles
|
|
const h2 = page.locator('h2');
|
|
await expect(h2.getByText('Govs ❤️ Open Source.')).toBeVisible();
|
|
await expect(
|
|
h2.getByText('Collaborative writing, Simplified.'),
|
|
).toBeVisible();
|
|
await expect(
|
|
h2.getByText('An uncompromising writing experience.'),
|
|
).toBeVisible();
|
|
await expect(
|
|
h2.getByText('Simple and secure collaboration.'),
|
|
).toBeVisible();
|
|
await expect(h2.getByText('Flexible export.')).toBeVisible();
|
|
await expect(
|
|
h2.getByText('A new way to organize knowledge.'),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
page.getByText('Docs is already available, log in to use it now.'),
|
|
).toBeVisible();
|
|
await expect(
|
|
page.getByRole('button', { name: 'Proconnect Login' }),
|
|
).toHaveCount(2);
|
|
|
|
await expect(footer).toBeVisible();
|
|
});
|
|
|
|
test('it checks the homepage feature flag', async ({ page }) => {
|
|
await overrideConfig(page, {
|
|
FRONTEND_HOMEPAGE_FEATURE_ENABLED: false,
|
|
});
|
|
|
|
await page.goto('/');
|
|
|
|
// Keyclock login page
|
|
await expect(
|
|
page.locator('.login-pf-page-header').getByText('impress'),
|
|
).toBeVisible();
|
|
});
|
|
});
|