2025-05-19 09:03:00 +02:00
|
|
|
import { expect, test } from '@playwright/test';
|
|
|
|
|
|
2025-07-16 13:56:18 +02:00
|
|
|
import { createDoc, verifyDocName } from './utils-common';
|
|
|
|
|
import { updateShareLink } from './utils-share';
|
|
|
|
|
import { createRootSubPage } from './utils-sub-pages';
|
2025-05-19 09:03:00 +02:00
|
|
|
|
|
|
|
|
test.describe('Inherited share accesses', () => {
|
2025-05-20 10:00:26 +02:00
|
|
|
test('it checks inherited accesses', async ({ page, browserName }) => {
|
2025-05-19 09:03:00 +02:00
|
|
|
await page.goto('/');
|
2025-07-02 14:33:57 +02:00
|
|
|
const [parentTitle] = await createDoc(page, 'root-doc', browserName, 1);
|
2025-05-19 09:03:00 +02:00
|
|
|
|
|
|
|
|
// Wait for and intercept the POST request to create a new page
|
2025-07-02 14:33:57 +02:00
|
|
|
await createRootSubPage(page, browserName, 'sub-page');
|
2025-05-19 09:03:00 +02:00
|
|
|
|
|
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
2025-07-02 14:33:57 +02:00
|
|
|
await expect(
|
|
|
|
|
page.getByText('People with access via the parent document'),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
2025-05-19 09:03:00 +02:00
|
|
|
const user = page.getByTestId(
|
2025-07-02 14:33:57 +02:00
|
|
|
`doc-share-member-row-user@${browserName}.test`,
|
2025-05-19 09:03:00 +02:00
|
|
|
);
|
|
|
|
|
await expect(user).toBeVisible();
|
|
|
|
|
await expect(user.getByText('E2E Chromium')).toBeVisible();
|
|
|
|
|
await expect(user.getByText('Owner')).toBeVisible();
|
|
|
|
|
|
2025-07-02 14:33:57 +02:00
|
|
|
await page
|
|
|
|
|
.locator('.--docs--doc-inherited-share-content')
|
|
|
|
|
.getByRole('link')
|
|
|
|
|
.click();
|
2025-05-19 09:03:00 +02:00
|
|
|
|
2025-07-02 14:33:57 +02:00
|
|
|
await verifyDocName(page, parentTitle);
|
2025-05-19 09:03:00 +02:00
|
|
|
});
|
|
|
|
|
|
2025-05-20 10:00:26 +02:00
|
|
|
test('it checks if the link is inherited', async ({ page, browserName }) => {
|
2025-05-19 09:03:00 +02:00
|
|
|
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');
|
|
|
|
|
|
2025-07-17 12:33:16 +02:00
|
|
|
// Verify share link is like the parent document
|
2025-05-19 09:03:00 +02:00
|
|
|
await page.getByRole('button', { name: 'Share' }).click();
|
2025-07-02 14:33:57 +02:00
|
|
|
const docVisibilityCard = page.getByLabel('Doc visibility card');
|
2025-07-17 12:33:16 +02:00
|
|
|
|
|
|
|
|
await expect(docVisibilityCard.getByText('Connected')).toBeVisible();
|
|
|
|
|
await expect(docVisibilityCard.getByText('Reading')).toBeVisible();
|
|
|
|
|
|
|
|
|
|
// Verify inherited link
|
|
|
|
|
await docVisibilityCard.getByText('Connected').click();
|
|
|
|
|
await expect(
|
|
|
|
|
page.getByRole('menuitem', { name: 'Private' }),
|
|
|
|
|
).toBeDisabled();
|
|
|
|
|
|
|
|
|
|
// Update child link
|
|
|
|
|
await page.getByRole('menuitem', { name: 'Public' }).click();
|
|
|
|
|
|
|
|
|
|
await docVisibilityCard.getByText('Reading').click();
|
|
|
|
|
await page.getByRole('menuitem', { name: 'Editing' }).click();
|
|
|
|
|
|
|
|
|
|
await expect(docVisibilityCard.getByText('Connected')).toBeHidden();
|
|
|
|
|
await expect(docVisibilityCard.getByText('Reading')).toBeHidden();
|
|
|
|
|
await expect(
|
|
|
|
|
docVisibilityCard.getByText('Public', {
|
|
|
|
|
exact: true,
|
|
|
|
|
}),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
await expect(docVisibilityCard.getByText('Editing')).toBeVisible();
|
|
|
|
|
await expect(
|
|
|
|
|
docVisibilityCard.getByText(
|
|
|
|
|
'The link sharing rules differ from the parent document',
|
|
|
|
|
),
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
|
|
|
|
|
// Restore inherited link
|
|
|
|
|
await page.getByRole('button', { name: 'Restore' }).click();
|
|
|
|
|
|
2025-07-02 14:33:57 +02:00
|
|
|
await expect(docVisibilityCard.getByText('Connected')).toBeVisible();
|
|
|
|
|
await expect(docVisibilityCard.getByText('Reading')).toBeVisible();
|
2025-07-17 12:33:16 +02:00
|
|
|
await expect(docVisibilityCard.getByText('Public')).toBeHidden();
|
|
|
|
|
await expect(docVisibilityCard.getByText('Editing')).toBeHidden();
|
|
|
|
|
await expect(
|
|
|
|
|
docVisibilityCard.getByText(
|
|
|
|
|
'The link sharing rules differ from the parent document',
|
|
|
|
|
),
|
|
|
|
|
).toBeHidden();
|
2025-05-19 09:03:00 +02:00
|
|
|
});
|
|
|
|
|
});
|