2024-09-06 18:03:19 +02:00
|
|
|
import { expect, test } from '@playwright/test';
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
import { createDoc, keyCloakSignIn, verifyDocName } from './common';
|
2024-09-06 18:03:19 +02:00
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
const browsersName = ['chromium', 'webkit', 'firefox'];
|
|
|
|
|
|
2024-09-06 18:03:19 +02:00
|
|
|
test.describe('Doc Visibility', () => {
|
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
});
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
test('It checks the copy link button', async ({ page, browserName }) => {
|
|
|
|
|
// eslint-disable-next-line playwright/no-skipped-test
|
|
|
|
|
test.skip(
|
|
|
|
|
browserName === 'webkit',
|
|
|
|
|
'navigator.clipboard is not working with webkit and playwright',
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
await createDoc(page, 'My button copy doc', browserName, 1);
|
|
|
|
|
|
|
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
|
|
|
|
await page.getByRole('button', { name: 'Copy link' }).click();
|
|
|
|
|
|
|
|
|
|
await expect(page.getByText('Link Copied !')).toBeVisible();
|
|
|
|
|
|
|
|
|
|
const handle = await page.evaluateHandle(() =>
|
|
|
|
|
navigator.clipboard.readText(),
|
|
|
|
|
);
|
|
|
|
|
const clipboardContent = await handle.jsonValue();
|
|
|
|
|
|
|
|
|
|
expect(clipboardContent).toMatch(page.url());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('It checks the link role options', async ({ page, browserName }) => {
|
|
|
|
|
await createDoc(page, 'Doc role options', browserName, 1);
|
|
|
|
|
|
|
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
const selectVisibility = page.getByLabel('Visibility', { exact: true });
|
2024-10-23 11:11:29 +02:00
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await expect(selectVisibility.getByText('Private')).toBeVisible();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
2024-10-25 14:16:29 +02:00
|
|
|
await expect(page.getByLabel('Read only')).toBeHidden();
|
|
|
|
|
await expect(page.getByLabel('Can read and edit')).toBeHidden();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await selectVisibility.click();
|
|
|
|
|
await page
|
2024-12-16 10:21:28 +01:00
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Connected',
|
2024-10-23 11:11:29 +02:00
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await expect(page.getByLabel('Visibility mode')).toBeVisible();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await selectVisibility.click();
|
|
|
|
|
|
|
|
|
|
await page
|
2024-12-16 10:21:28 +01:00
|
|
|
.getByRole('button', {
|
2024-10-23 11:11:29 +02:00
|
|
|
name: 'Public',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await expect(page.getByLabel('Visibility mode')).toBeVisible();
|
2024-10-23 11:11:29 +02:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test.describe('Doc Visibility: Restricted', () => {
|
|
|
|
|
test.use({ storageState: { cookies: [], origins: [] } });
|
|
|
|
|
|
|
|
|
|
test('A doc is not accessible when not authentified.', async ({
|
|
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
|
2024-09-06 18:03:19 +02:00
|
|
|
const [docTitle] = await createDoc(
|
|
|
|
|
page,
|
2024-10-23 11:11:29 +02:00
|
|
|
'Restricted no auth',
|
2024-09-06 18:03:19 +02:00
|
|
|
browserName,
|
|
|
|
|
1,
|
|
|
|
|
);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-09-06 18:03:19 +02:00
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
const urlDoc = page.url();
|
|
|
|
|
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Logout',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
await expect(page.getByRole('button', { name: 'Sign in' })).toBeVisible();
|
|
|
|
|
|
|
|
|
|
await page.goto(urlDoc);
|
|
|
|
|
|
|
|
|
|
await expect(page.getByRole('textbox', { name: 'password' })).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('A doc is not accessible when authentified but not member.', async ({
|
|
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
|
|
|
|
|
const [docTitle] = await createDoc(page, 'Restricted auth', browserName, 1);
|
2024-09-06 18:03:19 +02:00
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
const urlDoc = page.url();
|
|
|
|
|
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Logout',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
const otherBrowser = browsersName.find((b) => b !== browserName);
|
|
|
|
|
|
|
|
|
|
await keyCloakSignIn(page, otherBrowser!);
|
|
|
|
|
|
|
|
|
|
await page.goto(urlDoc);
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByText('You do not have permission to perform this action.'),
|
|
|
|
|
).toBeVisible();
|
2024-09-06 18:03:19 +02:00
|
|
|
});
|
2024-09-06 18:03:30 +02:00
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
test('A doc is accessible when member.', async ({ page, browserName }) => {
|
|
|
|
|
test.slow();
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
2024-09-06 18:03:30 +02:00
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
const [docTitle] = await createDoc(page, 'Restricted auth', browserName, 1);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-09-06 18:03:30 +02:00
|
|
|
|
|
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
const inputSearch = page.getByRole('combobox', {
|
|
|
|
|
name: 'Quick search input',
|
|
|
|
|
});
|
2024-09-06 18:03:30 +02:00
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
const otherBrowser = browsersName.find((b) => b !== browserName);
|
|
|
|
|
const username = `user@${otherBrowser}.e2e`;
|
|
|
|
|
await inputSearch.fill(username);
|
|
|
|
|
await page.getByRole('option', { name: username }).click();
|
|
|
|
|
|
|
|
|
|
// Choose a role
|
2024-12-16 10:21:28 +01:00
|
|
|
const container = page.getByTestId('doc-share-add-member-list');
|
|
|
|
|
await container.getByLabel('doc-role-dropdown').click();
|
|
|
|
|
await page.getByRole('button', { name: 'Administrator' }).click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByRole('button', { name: 'Invite' }).click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await page.locator('.c__modal__backdrop').click({
|
|
|
|
|
position: { x: 0, y: 0 },
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const urlDoc = page.url();
|
|
|
|
|
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Logout',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
await keyCloakSignIn(page, otherBrowser!);
|
|
|
|
|
|
|
|
|
|
await page.goto(urlDoc);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-10-23 11:11:29 +02:00
|
|
|
await expect(page.getByRole('button', { name: 'Share' })).toBeVisible();
|
2024-09-06 18:03:30 +02:00
|
|
|
});
|
2024-09-06 18:03:19 +02:00
|
|
|
});
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
test.describe('Doc Visibility: Public', () => {
|
2024-09-06 18:03:19 +02:00
|
|
|
test.use({ storageState: { cookies: [], origins: [] } });
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
test('It checks a public doc in read only mode', async ({
|
2024-09-06 18:03:19 +02:00
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
|
|
|
|
|
const [docTitle] = await createDoc(
|
|
|
|
|
page,
|
2024-10-23 11:11:29 +02:00
|
|
|
'Public read only',
|
2024-09-06 18:03:19 +02:00
|
|
|
browserName,
|
|
|
|
|
1,
|
|
|
|
|
);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
2024-12-16 10:21:28 +01:00
|
|
|
const selectVisibility = page.getByLabel('Visibility', { exact: true });
|
|
|
|
|
await selectVisibility.click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await page
|
2024-12-16 10:21:28 +01:00
|
|
|
.getByRole('button', {
|
2024-10-23 11:11:29 +02:00
|
|
|
name: 'Public',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
2024-09-06 18:03:19 +02:00
|
|
|
await expect(
|
2024-10-23 11:11:29 +02:00
|
|
|
page.getByText('The document visibility has been updated.'),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByLabel('Visibility mode').click();
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Reading',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByText('The document visibility has been updated.').first(),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByRole('button', { name: 'close' }).click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
const cardContainer = page.getByLabel(
|
|
|
|
|
'It is the card information about the document.',
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
await expect(cardContainer.getByTestId('public-icon')).toBeVisible();
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
await expect(
|
2024-11-25 12:10:16 +01:00
|
|
|
cardContainer.getByText('Public document', { exact: true }),
|
2024-09-06 18:03:19 +02:00
|
|
|
).toBeVisible();
|
|
|
|
|
|
|
|
|
|
const urlDoc = page.url();
|
|
|
|
|
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Logout',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
await expect(page.getByRole('button', { name: 'Sign in' })).toBeVisible();
|
|
|
|
|
|
|
|
|
|
await page.goto(urlDoc);
|
|
|
|
|
|
|
|
|
|
await expect(page.locator('h2').getByText(docTitle)).toBeVisible();
|
2024-10-09 14:27:02 +02:00
|
|
|
await expect(page.getByRole('button', { name: 'Share' })).toBeHidden();
|
2024-12-16 10:21:28 +01:00
|
|
|
const card = page.getByLabel('It is the card information');
|
|
|
|
|
await expect(card).toBeVisible();
|
|
|
|
|
|
|
|
|
|
await expect(card.getByText('Reader')).toBeVisible();
|
2024-09-06 18:03:19 +02:00
|
|
|
});
|
2024-09-27 15:52:43 +02:00
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
test('It checks a public doc in editable mode', async ({
|
2024-09-27 15:52:43 +02:00
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
const [docTitle] = await createDoc(page, 'Public editable', browserName, 1);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
2024-12-16 10:21:28 +01:00
|
|
|
const selectVisibility = page.getByLabel('Visibility', { exact: true });
|
|
|
|
|
await selectVisibility.click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await page
|
2024-12-16 10:21:28 +01:00
|
|
|
.getByRole('button', {
|
2024-10-23 11:11:29 +02:00
|
|
|
name: 'Public',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByText('The document visibility has been updated.'),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByLabel('Visibility mode').click();
|
|
|
|
|
await page.getByLabel('Edition').click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByText('The document visibility has been updated.').first(),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByRole('button', { name: 'close' }).click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
const cardContainer = page.getByLabel(
|
|
|
|
|
'It is the card information about the document.',
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
await expect(cardContainer.getByTestId('public-icon')).toBeVisible();
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
await expect(
|
2024-11-25 12:10:16 +01:00
|
|
|
cardContainer.getByText('Public document', { exact: true }),
|
2024-10-23 11:11:29 +02:00
|
|
|
).toBeVisible();
|
|
|
|
|
|
|
|
|
|
const urlDoc = page.url();
|
|
|
|
|
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Logout',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
await expect(page.getByRole('button', { name: 'Sign in' })).toBeVisible();
|
|
|
|
|
|
|
|
|
|
await page.goto(urlDoc);
|
2024-09-27 15:52:43 +02:00
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-10-23 11:11:29 +02:00
|
|
|
await expect(page.getByRole('button', { name: 'Share' })).toBeHidden();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test.describe('Doc Visibility: Authenticated', () => {
|
|
|
|
|
test.use({ storageState: { cookies: [], origins: [] } });
|
|
|
|
|
|
|
|
|
|
test('A doc is not accessible when unauthentified.', async ({
|
|
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
|
|
|
|
|
const [docTitle] = await createDoc(
|
|
|
|
|
page,
|
|
|
|
|
'Authenticated unauthentified',
|
|
|
|
|
browserName,
|
|
|
|
|
1,
|
|
|
|
|
);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-09-27 15:52:43 +02:00
|
|
|
|
2024-10-25 14:16:29 +02:00
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
2024-12-16 10:21:28 +01:00
|
|
|
const selectVisibility = page.getByLabel('Visibility', { exact: true });
|
|
|
|
|
await selectVisibility.click();
|
2024-10-25 14:16:29 +02:00
|
|
|
await page
|
2024-12-16 10:21:28 +01:00
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Connected',
|
2024-10-25 14:16:29 +02:00
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByText('The document visibility has been updated.'),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByRole('button', { name: 'close' }).click();
|
2024-10-25 14:16:29 +02:00
|
|
|
|
2024-09-27 15:52:43 +02:00
|
|
|
const urlDoc = page.url();
|
|
|
|
|
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Logout',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
await expect(page.getByRole('button', { name: 'Sign in' })).toBeVisible();
|
2024-09-27 15:52:43 +02:00
|
|
|
|
|
|
|
|
await page.goto(urlDoc);
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
await expect(page.locator('h2').getByText(docTitle)).toBeHidden();
|
2024-09-27 15:52:43 +02:00
|
|
|
await expect(page.getByRole('textbox', { name: 'password' })).toBeVisible();
|
|
|
|
|
});
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
test('It checks a authenticated doc in read only mode', async ({
|
|
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
|
|
|
|
|
const [docTitle] = await createDoc(
|
|
|
|
|
page,
|
|
|
|
|
'Authenticated read only',
|
|
|
|
|
browserName,
|
|
|
|
|
1,
|
|
|
|
|
);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-10-23 11:11:29 +02:00
|
|
|
|
2024-10-25 14:16:29 +02:00
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
2024-12-16 10:21:28 +01:00
|
|
|
const selectVisibility = page.getByLabel('Visibility', { exact: true });
|
|
|
|
|
await selectVisibility.click();
|
2024-10-25 14:16:29 +02:00
|
|
|
await page
|
2024-12-16 10:21:28 +01:00
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Connected',
|
2024-10-25 14:16:29 +02:00
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByText('The document visibility has been updated.'),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByRole('button', { name: 'close' }).click();
|
2024-10-25 14:16:29 +02:00
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
const urlDoc = page.url();
|
|
|
|
|
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Logout',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
const otherBrowser = browsersName.find((b) => b !== browserName);
|
|
|
|
|
await keyCloakSignIn(page, otherBrowser!);
|
|
|
|
|
|
|
|
|
|
await page.goto(urlDoc);
|
|
|
|
|
|
|
|
|
|
await expect(page.locator('h2').getByText(docTitle)).toBeVisible();
|
2024-10-24 17:21:33 +02:00
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await expect(selectVisibility).toBeHidden();
|
2024-10-24 17:21:33 +02:00
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
const inputSearch = page.getByRole('combobox', {
|
|
|
|
|
name: 'Quick search input',
|
|
|
|
|
});
|
|
|
|
|
await expect(inputSearch).toBeHidden();
|
2024-10-23 11:11:29 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('It checks a authenticated doc in editable mode', async ({
|
|
|
|
|
page,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
|
|
|
|
|
const [docTitle] = await createDoc(
|
|
|
|
|
page,
|
|
|
|
|
'Authenticated editable',
|
|
|
|
|
browserName,
|
|
|
|
|
1,
|
|
|
|
|
);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-10-23 11:11:29 +02:00
|
|
|
|
2024-10-25 14:16:29 +02:00
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
2024-12-16 10:21:28 +01:00
|
|
|
const selectVisibility = page.getByLabel('Visibility', { exact: true });
|
|
|
|
|
await selectVisibility.click();
|
2024-10-25 14:16:29 +02:00
|
|
|
await page
|
2024-12-16 10:21:28 +01:00
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Connected',
|
2024-10-25 14:16:29 +02:00
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByText('The document visibility has been updated.'),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-10-23 11:11:29 +02:00
|
|
|
const urlDoc = page.url();
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByLabel('Visibility mode').click();
|
|
|
|
|
await page.getByLabel('Edition').click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByText('The document visibility has been updated.').first(),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await page.getByRole('button', { name: 'close' }).click();
|
2024-10-23 11:11:29 +02:00
|
|
|
|
|
|
|
|
await page
|
|
|
|
|
.getByRole('button', {
|
|
|
|
|
name: 'Logout',
|
|
|
|
|
})
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
const otherBrowser = browsersName.find((b) => b !== browserName);
|
|
|
|
|
await keyCloakSignIn(page, otherBrowser!);
|
|
|
|
|
|
|
|
|
|
await page.goto(urlDoc);
|
|
|
|
|
|
2024-11-25 12:10:16 +01:00
|
|
|
await verifyDocName(page, docTitle);
|
2024-10-24 17:21:33 +02:00
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
|
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
await expect(selectVisibility).toBeHidden();
|
2024-10-24 17:21:33 +02:00
|
|
|
|
2024-12-16 10:21:28 +01:00
|
|
|
const inputSearch = page.getByRole('combobox', {
|
|
|
|
|
name: 'Quick search input',
|
|
|
|
|
});
|
|
|
|
|
await expect(inputSearch).toBeHidden();
|
2024-10-23 11:11:29 +02:00
|
|
|
});
|
2024-09-06 18:03:19 +02:00
|
|
|
});
|