2024-07-05 14:14:43 +02:00
|
|
|
import { expect, test } from '@playwright/test';
|
|
|
|
|
|
2025-02-03 11:02:29 +01:00
|
|
|
import { expectLoginPage, keyCloakSignIn, mockedDocument } from './common';
|
2024-07-05 14:14:43 +02:00
|
|
|
|
|
|
|
|
test.describe('Doc Routing', () => {
|
2024-08-16 14:51:42 +02:00
|
|
|
test.beforeEach(async ({ page }) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
});
|
|
|
|
|
|
2024-10-24 10:33:14 +02:00
|
|
|
test('Check the presence of the meta tag noindex', async ({ page }) => {
|
|
|
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
2024-11-13 15:11:10 +01:00
|
|
|
name: 'New doc',
|
2024-10-24 10:33:14 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
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');
|
|
|
|
|
});
|
|
|
|
|
|
2024-07-05 14:14:43 +02:00
|
|
|
test('checks alias docs url with homepage', async ({ page }) => {
|
|
|
|
|
await expect(page).toHaveURL('/');
|
|
|
|
|
|
|
|
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
2024-11-13 15:11:10 +01:00
|
|
|
name: 'New doc',
|
2024-07-05 14:14:43 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
|
|
|
|
|
2024-08-16 14:51:42 +02:00
|
|
|
await page.goto('/docs/');
|
2024-07-05 14:14:43 +02:00
|
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
2024-08-16 14:51:42 +02:00
|
|
|
await expect(page).toHaveURL(/\/docs\/$/);
|
2024-07-05 14:14:43 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
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,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
2024-08-16 14:51:42 +02:00
|
|
|
|
|
|
|
|
test.describe('Doc Routing: Not loggued', () => {
|
|
|
|
|
test.use({ storageState: { cookies: [], origins: [] } });
|
|
|
|
|
|
|
|
|
|
test('checks redirect to a doc after login', async ({
|
|
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
2024-09-27 14:24:16 +02:00
|
|
|
await mockedDocument(page, { link_reach: 'public' });
|
2024-08-16 14:51:42 +02:00
|
|
|
await page.goto('/docs/mocked-document-id/');
|
2024-09-27 14:24:16 +02:00
|
|
|
await expect(page.locator('h2').getByText('Mocked document')).toBeVisible();
|
|
|
|
|
await page.getByRole('button', { name: 'Login' }).click();
|
2025-02-03 11:02:29 +01:00
|
|
|
await keyCloakSignIn(page, browserName, false);
|
2024-09-27 14:24:16 +02:00
|
|
|
await expect(page.locator('h2').getByText('Mocked document')).toBeVisible();
|
2024-08-16 14:51:42 +02:00
|
|
|
});
|
2024-09-06 14:23:22 +02:00
|
|
|
|
2025-02-03 11:02:29 +01:00
|
|
|
// eslint-disable-next-line playwright/expect-expect
|
2024-09-06 14:23:22 +02:00
|
|
|
test('The homepage redirects to login.', async ({ page }) => {
|
|
|
|
|
await page.goto('/');
|
2025-02-03 11:02:29 +01:00
|
|
|
await expectLoginPage(page);
|
2024-09-06 14:23:22 +02:00
|
|
|
});
|
2024-08-16 14:51:42 +02:00
|
|
|
});
|