2024-04-03 11:49:14 +02:00
|
|
|
import { expect, test } from '@playwright/test';
|
|
|
|
|
|
2024-07-05 14:14:43 +02:00
|
|
|
import { createDoc } from './common';
|
|
|
|
|
|
2024-06-06 22:13:18 +02:00
|
|
|
test.beforeEach(async ({ page }) => {
|
2024-04-03 11:49:14 +02:00
|
|
|
await page.goto('/');
|
|
|
|
|
});
|
|
|
|
|
|
2024-06-25 14:49:53 +02:00
|
|
|
test.describe('Doc Create', () => {
|
|
|
|
|
test('checks all the create doc elements are visible', async ({ page }) => {
|
2024-04-03 11:49:14 +02:00
|
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
2024-05-27 13:27:49 +02:00
|
|
|
name: 'Create a new document',
|
2024-04-03 11:49:14 +02:00
|
|
|
});
|
|
|
|
|
await buttonCreateHomepage.click();
|
|
|
|
|
await expect(buttonCreateHomepage).toBeHidden();
|
|
|
|
|
|
2024-07-08 13:35:23 +02:00
|
|
|
const card = page.getByRole('dialog').first();
|
2024-04-03 11:49:14 +02:00
|
|
|
|
|
|
|
|
await expect(
|
2024-07-08 13:35:23 +02:00
|
|
|
card.locator('h2').getByText('Create a new document'),
|
2024-04-03 11:49:14 +02:00
|
|
|
).toBeVisible();
|
2024-07-08 13:35:23 +02:00
|
|
|
await expect(card.getByLabel('Document name')).toBeVisible();
|
2024-04-03 11:49:14 +02:00
|
|
|
|
2024-04-18 13:21:08 +02:00
|
|
|
await expect(card.getByText('Is it public ?')).toBeVisible();
|
|
|
|
|
|
2024-04-03 11:49:14 +02:00
|
|
|
await expect(
|
|
|
|
|
card.getByRole('button', {
|
2024-05-27 13:27:49 +02:00
|
|
|
name: 'Create the document',
|
2024-04-03 11:49:14 +02:00
|
|
|
}),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-07-08 13:35:23 +02:00
|
|
|
await expect(card.getByLabel('Close the modal')).toBeVisible();
|
2024-04-03 11:49:14 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('checks the cancel button interaction', async ({ page }) => {
|
|
|
|
|
const buttonCreateHomepage = page.getByRole('button', {
|
2024-05-27 13:27:49 +02:00
|
|
|
name: 'Create a new document',
|
2024-04-03 11:49:14 +02:00
|
|
|
});
|
|
|
|
|
await buttonCreateHomepage.click();
|
|
|
|
|
await expect(buttonCreateHomepage).toBeHidden();
|
|
|
|
|
|
2024-07-08 13:35:23 +02:00
|
|
|
const card = page.getByRole('dialog').first();
|
2024-04-03 11:49:14 +02:00
|
|
|
|
2024-07-08 13:35:23 +02:00
|
|
|
await card.getByLabel('Close the modal').click();
|
2024-04-03 11:49:14 +02:00
|
|
|
|
|
|
|
|
await expect(buttonCreateHomepage).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
|
2024-07-05 14:14:43 +02:00
|
|
|
test('create a new public doc', async ({ page, browserName }) => {
|
|
|
|
|
const [docTitle] = await createDoc(
|
|
|
|
|
page,
|
|
|
|
|
'My new doc',
|
|
|
|
|
browserName,
|
|
|
|
|
1,
|
|
|
|
|
true,
|
|
|
|
|
);
|
2024-04-03 11:49:14 +02:00
|
|
|
|
2024-09-05 12:45:02 +02:00
|
|
|
expect(await page.locator('title').textContent()).toMatch(
|
|
|
|
|
/My new doc - Docs/,
|
|
|
|
|
);
|
|
|
|
|
|
2024-07-05 14:14:43 +02:00
|
|
|
const header = page.locator('header').first();
|
|
|
|
|
await header.locator('h2').getByText('Docs').click();
|
2024-04-03 11:49:14 +02:00
|
|
|
|
2024-07-05 14:14:43 +02:00
|
|
|
const datagrid = page
|
|
|
|
|
.getByLabel('Datagrid of the documents page 1')
|
|
|
|
|
.getByRole('table');
|
2024-04-03 11:49:14 +02:00
|
|
|
|
2024-07-09 13:57:14 +02:00
|
|
|
await expect(datagrid.getByLabel('Loading data')).toBeHidden();
|
|
|
|
|
|
2024-07-05 14:14:43 +02:00
|
|
|
await expect(datagrid.getByText(docTitle)).toBeVisible();
|
2024-06-13 14:24:56 +02:00
|
|
|
|
2024-07-05 14:14:43 +02:00
|
|
|
const row = datagrid.getByRole('row').filter({
|
|
|
|
|
hasText: docTitle,
|
2024-04-03 11:49:14 +02:00
|
|
|
});
|
2024-04-18 13:21:08 +02:00
|
|
|
|
2024-07-05 14:14:43 +02:00
|
|
|
await expect(row.getByRole('cell').nth(0)).toHaveText('Public');
|
2024-04-18 13:21:08 +02:00
|
|
|
});
|
2024-04-03 11:49:14 +02:00
|
|
|
});
|