✅(frontend) enhance tests
- Removed 'feature/doc-dnd' branch from the Docker Hub workflow to streamline deployment processes. - Updated document creation tests to replace 'New page' button references with 'New doc' for consistency. - Enhanced test cases to improve clarity and ensure accurate verification of document functionalities. - Added new utility function for creating root subpages, improving test maintainability.
This commit is contained in:
committed by
Anthony LC
parent
44909faa67
commit
82f2cb59e6
@@ -1,108 +1,35 @@
|
||||
import { expect, test } from '@playwright/test';
|
||||
|
||||
import { createDoc } from './common';
|
||||
import {
|
||||
addMemberToDoc,
|
||||
searchUserToInviteToDoc,
|
||||
updateShareLink,
|
||||
verifyLinkReachIsDisabled,
|
||||
verifyLinkReachIsEnabled,
|
||||
verifyLinkRoleIsDisabled,
|
||||
verifyLinkRoleIsEnabled,
|
||||
verifyMemberAddedToDoc,
|
||||
} from './share-utils';
|
||||
import { createRootSubPage, createSubPageFromParent } from './sub-pages-utils';
|
||||
import { createDoc, verifyDocName } from './common';
|
||||
import { updateShareLink } from './share-utils';
|
||||
import { createRootSubPage } from './sub-pages-utils';
|
||||
|
||||
test.describe('Inherited share accesses', () => {
|
||||
test('it checks inherited accesses', async ({ page, browserName }) => {
|
||||
await page.goto('/');
|
||||
const [titleParent] = await createDoc(page, 'root-doc', browserName, 1);
|
||||
const docTree = page.getByTestId('doc-tree');
|
||||
const [parentTitle] = await createDoc(page, 'root-doc', browserName, 1);
|
||||
|
||||
const addButton = page.getByRole('button', { name: 'New page' });
|
||||
// Wait for and intercept the POST request to create a new page
|
||||
const responsePromise = page.waitForResponse(
|
||||
(response) =>
|
||||
response.url().includes('/documents/') &&
|
||||
response.url().includes('/children/') &&
|
||||
response.request().method() === 'POST',
|
||||
);
|
||||
await addButton.click();
|
||||
await createRootSubPage(page, browserName, 'sub-page');
|
||||
|
||||
const response = await responsePromise;
|
||||
expect(response.ok()).toBeTruthy();
|
||||
const subPageJson = await response.json();
|
||||
|
||||
await expect(docTree).toBeVisible();
|
||||
const subPageItem = docTree
|
||||
.getByTestId(`doc-sub-page-item-${subPageJson.id}`)
|
||||
.first();
|
||||
|
||||
await expect(subPageItem).toBeVisible();
|
||||
await subPageItem.click();
|
||||
await page.getByRole('button', { name: 'Share' }).click();
|
||||
await expect(page.getByText('Inherited share')).toBeVisible();
|
||||
await expect(page.getByRole('link', { name: titleParent })).toBeVisible();
|
||||
await page.getByRole('button', { name: 'See access' }).click();
|
||||
await expect(page.getByText('Access inherited from the')).toBeVisible();
|
||||
await expect(
|
||||
page.getByText('People with access via the parent document'),
|
||||
).toBeVisible();
|
||||
|
||||
const user = page.getByTestId(
|
||||
`doc-share-member-row-user@${browserName}.e2e`,
|
||||
`doc-share-member-row-user@${browserName}.test`,
|
||||
);
|
||||
await expect(user).toBeVisible();
|
||||
await expect(user.getByText('E2E Chromium')).toBeVisible();
|
||||
await expect(user.getByText('Owner')).toBeVisible();
|
||||
});
|
||||
|
||||
test('it checks that the highest role is displayed', async ({
|
||||
page,
|
||||
browserName,
|
||||
}) => {
|
||||
await page.goto('/');
|
||||
await createDoc(page, 'root-doc', browserName, 1);
|
||||
await page
|
||||
.locator('.--docs--doc-inherited-share-content')
|
||||
.getByRole('link')
|
||||
.click();
|
||||
|
||||
// Search user to add
|
||||
let users = await searchUserToInviteToDoc(page);
|
||||
let userToAdd = users[0];
|
||||
|
||||
// Add user as Administrator in root doc
|
||||
await addMemberToDoc(page, 'Administrator', [userToAdd]);
|
||||
await verifyMemberAddedToDoc(page, userToAdd, 'Administrator');
|
||||
await page.getByRole('button', { name: 'OK' }).click();
|
||||
|
||||
// Create sub page
|
||||
const { name: subPageName, item: subPageJson } = await createRootSubPage(
|
||||
page,
|
||||
browserName,
|
||||
'sub-page',
|
||||
);
|
||||
|
||||
// Add user as Editor in sub page
|
||||
users = await searchUserToInviteToDoc(page);
|
||||
userToAdd = users[0];
|
||||
await addMemberToDoc(page, 'Editor', [userToAdd]);
|
||||
const userRow = await verifyMemberAddedToDoc(page, userToAdd, 'Editor');
|
||||
await userRow.getByRole('button', { name: 'doc-role-dropdown' }).click();
|
||||
await page.getByText('This user has access').click();
|
||||
await userRow.click();
|
||||
await page.getByRole('button', { name: 'OK' }).click();
|
||||
|
||||
// Add new sub page to sub page
|
||||
await createSubPageFromParent(
|
||||
page,
|
||||
browserName,
|
||||
subPageJson.id,
|
||||
'sub-page-2',
|
||||
);
|
||||
|
||||
// // Check sub page inherited share
|
||||
await page.getByRole('button', { name: 'Share' }).click();
|
||||
await expect(page.getByText('Inherited share')).toBeVisible();
|
||||
await expect(page.getByRole('link', { name: subPageName })).toBeVisible();
|
||||
await page.getByRole('button', { name: 'See access' }).click();
|
||||
await expect(page.getByText('Access inherited from the')).toBeVisible();
|
||||
const user = page.getByTestId(`doc-share-member-row-${userToAdd.email}`);
|
||||
await expect(user).toBeVisible();
|
||||
await expect(user.getByText('Administrator')).toBeVisible();
|
||||
await verifyDocName(page, parentTitle);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -122,87 +49,10 @@ test.describe('Inherited share link', () => {
|
||||
|
||||
// // verify share link is restricted and reader
|
||||
await page.getByRole('button', { name: 'Share' }).click();
|
||||
await expect(page.getByText('Inherited share')).toBeVisible();
|
||||
// await verifyShareLink(page, 'Connected', 'Reading');
|
||||
});
|
||||
|
||||
test('it checks warning message when sharing rules differ', async ({
|
||||
page,
|
||||
browserName,
|
||||
}) => {
|
||||
await page.goto('/');
|
||||
// Create root doc
|
||||
await createDoc(page, 'root-doc', browserName, 1);
|
||||
|
||||
// Update share link
|
||||
await page.getByRole('button', { name: 'Share' }).click();
|
||||
await updateShareLink(page, 'Connected', 'Reading');
|
||||
await page.getByRole('button', { name: 'OK' }).click();
|
||||
|
||||
// Create sub page
|
||||
await createRootSubPage(page, browserName, 'sub-page');
|
||||
await page.getByRole('button', { name: 'Share' }).click();
|
||||
|
||||
// Update share link to public and edition
|
||||
await updateShareLink(page, 'Public', 'Edition');
|
||||
await expect(page.getByText('Sharing rules differ from the')).toBeVisible();
|
||||
const restoreButton = page.getByRole('button', { name: 'Restore' });
|
||||
await expect(restoreButton).toBeVisible();
|
||||
await restoreButton.click();
|
||||
await expect(
|
||||
page.getByText('The document visibility has been updated').first(),
|
||||
).toBeVisible();
|
||||
await expect(page.getByText('Sharing rules differ from the')).toBeHidden();
|
||||
});
|
||||
|
||||
test('it checks inherited link possibilities', async ({
|
||||
page,
|
||||
browserName,
|
||||
}) => {
|
||||
await page.goto('/');
|
||||
// Create root doc
|
||||
await createDoc(page, 'root-doc', browserName, 1);
|
||||
|
||||
// Update share link
|
||||
await page.getByRole('button', { name: 'Share' }).click();
|
||||
await updateShareLink(page, 'Connected', 'Reading');
|
||||
await page.getByRole('button', { name: 'OK' }).click();
|
||||
await expect(
|
||||
page.getByText('Document accessible to any connected person'),
|
||||
).toBeVisible();
|
||||
|
||||
// Create sub page
|
||||
const { item: subPageItem } = await createRootSubPage(
|
||||
page,
|
||||
browserName,
|
||||
'sub-page',
|
||||
);
|
||||
await expect(
|
||||
page.getByText('Document accessible to any connected person'),
|
||||
).toBeVisible();
|
||||
|
||||
// Update share link to public and edition
|
||||
await page.getByRole('button', { name: 'Share' }).click();
|
||||
await verifyLinkReachIsDisabled(page, 'Private');
|
||||
await updateShareLink(page, 'Public', 'Edition');
|
||||
await page.getByRole('button', { name: 'OK' }).click();
|
||||
await expect(page.getByText('Public document')).toBeVisible();
|
||||
|
||||
// Create sub page
|
||||
await createSubPageFromParent(
|
||||
page,
|
||||
browserName,
|
||||
subPageItem.id,
|
||||
'sub-page-2',
|
||||
);
|
||||
await expect(page.getByText('Public document')).toBeVisible();
|
||||
|
||||
// Verify share link and role
|
||||
await page.getByRole('button', { name: 'Share' }).click();
|
||||
await verifyLinkReachIsDisabled(page, 'Private');
|
||||
await verifyLinkReachIsDisabled(page, 'Connected');
|
||||
await verifyLinkReachIsEnabled(page, 'Public');
|
||||
await verifyLinkRoleIsDisabled(page, 'Reading');
|
||||
await verifyLinkRoleIsEnabled(page, 'Edition');
|
||||
// await expect(page.getByText('Inherited share')).toBeVisible();
|
||||
const docVisibilityCard = page.getByLabel('Doc visibility card');
|
||||
await expect(docVisibilityCard).toBeVisible();
|
||||
await expect(docVisibilityCard.getByText('Connected')).toBeVisible();
|
||||
await expect(docVisibilityCard.getByText('Reading')).toBeVisible();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user