The backend was updated to include the pad endpoints. The mock pad endpoints were removed in favor of the real ones. We adapted the types as well to match the real ones.
109 lines
3.0 KiB
TypeScript
109 lines
3.0 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { keyCloakSignIn } from './common';
|
|
|
|
test.beforeEach(async ({ page, browserName }) => {
|
|
await page.goto('/');
|
|
await keyCloakSignIn(page, browserName);
|
|
});
|
|
|
|
test.describe('Pad Create', () => {
|
|
test('checks all the create pad elements are visible', async ({ page }) => {
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
|
name: 'Create a new pad',
|
|
});
|
|
await buttonCreateHomepage.click();
|
|
await expect(buttonCreateHomepage).toBeHidden();
|
|
|
|
const card = page.getByLabel('Create new pad card').first();
|
|
|
|
await expect(card.getByLabel('Pad name')).toBeVisible();
|
|
|
|
await expect(card.getByLabel('icon group')).toBeVisible();
|
|
|
|
await expect(
|
|
card.getByRole('heading', {
|
|
name: 'Name the pad',
|
|
level: 3,
|
|
}),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
card.getByRole('button', {
|
|
name: 'Create the pad',
|
|
}),
|
|
).toBeVisible();
|
|
|
|
await expect(
|
|
card.getByRole('button', {
|
|
name: 'Cancel',
|
|
}),
|
|
).toBeVisible();
|
|
});
|
|
|
|
test('checks the cancel button interaction', async ({ page }) => {
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
|
name: 'Create a new pad',
|
|
});
|
|
await buttonCreateHomepage.click();
|
|
await expect(buttonCreateHomepage).toBeHidden();
|
|
|
|
const card = page.getByLabel('Create new pad card').first();
|
|
|
|
await card
|
|
.getByRole('button', {
|
|
name: 'Cancel',
|
|
})
|
|
.click();
|
|
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
|
});
|
|
|
|
test('checks the routing on new pad created', async ({
|
|
page,
|
|
browserName,
|
|
}) => {
|
|
const panel = page.getByLabel('Pads panel').first();
|
|
|
|
await panel.getByRole('button', { name: 'Add a pad' }).click();
|
|
|
|
const padName = `My routing pad ${browserName}-${Math.floor(Math.random() * 1000)}`;
|
|
await page.getByText('Pad name').fill(padName);
|
|
await page.getByRole('button', { name: 'Create the pad' }).click();
|
|
|
|
const elPad = page.locator('h2').getByText(padName);
|
|
await expect(elPad).toBeVisible();
|
|
|
|
await panel.getByRole('button', { name: 'Add a pad' }).click();
|
|
await expect(elPad).toBeHidden();
|
|
|
|
await panel.locator('li').getByText(padName).click();
|
|
await expect(elPad).toBeVisible();
|
|
});
|
|
|
|
test('checks alias pads url with homepage', async ({ page }) => {
|
|
await expect(page).toHaveURL('/');
|
|
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
|
name: 'Create a new pad',
|
|
});
|
|
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
|
|
|
await page.goto('/pads');
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
|
await expect(page).toHaveURL(/\/pads$/);
|
|
});
|
|
|
|
test('checks 404 on pads/[id] page', async ({ page }) => {
|
|
await page.goto('/pads/some-unknown-pad');
|
|
await expect(
|
|
page.getByText(
|
|
'It seems that the page you are looking for does not exist or cannot be displayed correctly.',
|
|
),
|
|
).toBeVisible({
|
|
timeout: 15000,
|
|
});
|
|
});
|
|
});
|