If a user wanted to access a doc but was not logged in, they would be redirected to the login page. After logging in, they would be redirected to the home page. This change makes it so that they are redirected to the doc they originally wanted to access. Usefull from the mail sent to the user to access the doc they were invited to.
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { keyCloakSignIn } from './common';
|
|
|
|
test.describe('Doc Routing', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/');
|
|
});
|
|
|
|
test('checks alias docs url with homepage', async ({ page }) => {
|
|
await expect(page).toHaveURL('/');
|
|
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
|
name: 'Create a new document',
|
|
});
|
|
|
|
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 page.goto('/docs/mocked-document-id/');
|
|
await keyCloakSignIn(page, browserName);
|
|
await expect(page).toHaveURL(/\/docs\/mocked-document-id\/$/);
|
|
});
|
|
});
|