If we are with the DSFR theme, we need to add the proconnect button to the homepage. We add an option in the cunningham theme to display the proconnect section instead of the opensource section.
76 lines
2.3 KiB
TypeScript
76 lines
2.3 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { expectLoginPage, keyCloakSignIn, mockedDocument } from './common';
|
|
|
|
test.describe('Doc Routing', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/');
|
|
});
|
|
|
|
test('Check the presence of the meta tag noindex', async ({ page }) => {
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
|
name: 'New doc',
|
|
});
|
|
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
|
await buttonCreateHomepage.click();
|
|
await expect(
|
|
page.getByRole('button', {
|
|
name: 'Share',
|
|
}),
|
|
).toBeVisible();
|
|
const metaDescription = page.locator('meta[name="robots"]');
|
|
await expect(metaDescription).toHaveAttribute('content', 'noindex');
|
|
});
|
|
|
|
test('checks alias docs url with homepage', async ({ page }) => {
|
|
await expect(page).toHaveURL('/');
|
|
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
|
name: 'New doc',
|
|
});
|
|
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
|
|
|
await page.goto('/docs/');
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
|
await expect(page).toHaveURL(/\/docs\/$/);
|
|
});
|
|
|
|
test('checks 404 on docs/[id] page', async ({ page }) => {
|
|
// eslint-disable-next-line playwright/no-wait-for-timeout
|
|
await page.waitForTimeout(300);
|
|
|
|
await page.goto('/docs/some-unknown-doc');
|
|
await expect(
|
|
page.getByText(
|
|
'It seems that the page you are looking for does not exist or cannot be displayed correctly.',
|
|
),
|
|
).toBeVisible({
|
|
timeout: 15000,
|
|
});
|
|
});
|
|
});
|
|
|
|
test.describe('Doc Routing: Not loggued', () => {
|
|
test.use({ storageState: { cookies: [], origins: [] } });
|
|
|
|
test('checks redirect to a doc after login', async ({
|
|
page,
|
|
browserName,
|
|
}) => {
|
|
await mockedDocument(page, { link_reach: 'public' });
|
|
await page.goto('/docs/mocked-document-id/');
|
|
await expect(page.locator('h2').getByText('Mocked document')).toBeVisible();
|
|
await page.getByRole('button', { name: 'Login' }).click();
|
|
await keyCloakSignIn(page, browserName, false);
|
|
await expect(page.locator('h2').getByText('Mocked document')).toBeVisible();
|
|
});
|
|
|
|
// eslint-disable-next-line playwright/expect-expect
|
|
test('The homepage redirects to login.', async ({ page }) => {
|
|
await page.goto('/');
|
|
await expectLoginPage(page);
|
|
});
|
|
});
|