From 70048328d1b3226c4b0c8f9d93ec6c65b839c30d Mon Sep 17 00:00:00 2001 From: Nathan Panchout Date: Mon, 27 Jan 2025 11:38:59 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(frontend)=20update=20document=20shari?= =?UTF-8?q?ng=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added Share button interactions in various document visibility scenarios - Updated test assertions for share and copy link functionality - Improved test coverage for document sharing features --- CHANGELOG.md | 5 +++++ docker-compose.yml | 2 +- .../e2e/__tests__/app-impress/doc-header.spec.ts | 8 ++++++++ .../app-impress/doc-member-create.spec.ts | 2 +- .../__tests__/app-impress/doc-visibility.spec.ts | 6 ++++-- .../impress/src/cunningham/cunningham-style.css | 16 ++++++++++++++++ .../docs/doc-share/components/DocVisibility.tsx | 2 +- .../docs/docs-grid/components/DocsGridItem.tsx | 13 +++++++++---- src/frontend/apps/impress/src/pages/globals.css | 16 ---------------- 9 files changed, 45 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a8ae7b4..c4b6ccc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,11 @@ and this project adheres to - github actions to managed Crowdin workflow +## Changed + +- 💄(frontend) add abilities on doc row #581 + + ## [2.0.1] - 2025-01-17 ## Fixed diff --git a/docker-compose.yml b/docker-compose.yml index 62d2d914..74c90c08 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -151,7 +151,7 @@ services: image: node:18 user: "${DOCKER_USER:-1000}" environment: - HOME: /tmp + HOME: /tmp volumes: - ".:/app" diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts index a9be9dac..8bf98848 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts @@ -418,6 +418,13 @@ test.describe('Doc Header', () => { await goToGridDoc(page); + const shareButton = page.getByRole('button', { + name: 'Share', + exact: true, + }); + await expect(shareButton).toBeVisible(); + + await shareButton.click(); await page.getByRole('button', { name: 'Copy link' }).click(); await expect(page.getByText('Link Copied !')).toBeVisible(); }); @@ -455,6 +462,7 @@ test.describe('Documents Header mobile', () => { await expect(page.getByRole('button', { name: 'Copy link' })).toBeHidden(); await page.getByLabel('Open the document options').click(); + await page.getByRole('button', { name: 'Share' }).click(); await page.getByRole('button', { name: 'Copy link' }).click(); await expect(page.getByText('Link Copied !')).toBeVisible(); // Test that clipboard is in HTML format diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-member-create.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-member-create.spec.ts index f9d306a5..04015e9e 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-member-create.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-member-create.spec.ts @@ -79,7 +79,7 @@ test.describe('Document create member', () => { await expect(quickSearchContent.getByText(email).first()).toBeVisible(); // Check user added - await expect(page.getByText('Share with 2 users')).toBeVisible(); + await expect(page.getByText('Share with 3 users')).toBeVisible(); await expect( quickSearchContent.getByText(users[0].full_name).first(), ).toBeVisible(); diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-visibility.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-visibility.spec.ts index 612c1a4b..8414b0c7 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-visibility.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-visibility.spec.ts @@ -250,7 +250,7 @@ test.describe('Doc Visibility: Public', () => { await expect(page.locator('h2').getByText(docTitle)).toBeVisible(); await expect(page.getByRole('button', { name: 'search' })).toBeHidden(); await expect(page.getByRole('button', { name: 'New doc' })).toBeHidden(); - await expect(page.getByRole('button', { name: 'Share' })).toBeHidden(); + await expect(page.getByRole('button', { name: 'Share' })).toBeVisible(); const card = page.getByLabel('It is the card information'); await expect(card).toBeVisible(); @@ -314,7 +314,7 @@ test.describe('Doc Visibility: Public', () => { await page.goto(urlDoc); await verifyDocName(page, docTitle); - await expect(page.getByRole('button', { name: 'Share' })).toBeHidden(); + await expect(page.getByRole('button', { name: 'Share' })).toBeVisible(); }); }); @@ -413,6 +413,7 @@ test.describe('Doc Visibility: Authenticated', () => { await page.goto(urlDoc); await expect(page.locator('h2').getByText(docTitle)).toBeVisible(); + await page.getByRole('button', { name: 'Share' }).click(); await page.getByRole('button', { name: 'Copy link' }).click(); await expect(page.getByText('Link Copied !')).toBeVisible(); }); @@ -468,6 +469,7 @@ test.describe('Doc Visibility: Authenticated', () => { await page.goto(urlDoc); await verifyDocName(page, docTitle); + await page.getByRole('button', { name: 'Share' }).click(); await page.getByRole('button', { name: 'Copy link' }).click(); await expect(page.getByText('Link Copied !')).toBeVisible(); }); diff --git a/src/frontend/apps/impress/src/cunningham/cunningham-style.css b/src/frontend/apps/impress/src/cunningham/cunningham-style.css index 00d95617..7b8b9403 100644 --- a/src/frontend/apps/impress/src/cunningham/cunningham-style.css +++ b/src/frontend/apps/impress/src/cunningham/cunningham-style.css @@ -576,6 +576,22 @@ input:-webkit-autofill:focus { } } +.c__modal__scroller:has(.noPadding) { + padding: 0 !important; + + .c__modal__close .c__button { + right: 5px; + top: 5px; + padding: 1.5rem 1rem; + } + + .c__modal__title { + font-size: var(--c--theme--font--sizes--xs); + padding: var(--c--theme--spacings--base); + margin-bottom: 0; + } +} + /** * Toast */ diff --git a/src/frontend/apps/impress/src/features/docs/doc-share/components/DocVisibility.tsx b/src/frontend/apps/impress/src/features/docs/doc-share/components/DocVisibility.tsx index 7806c1b9..55138ff9 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-share/components/DocVisibility.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-share/components/DocVisibility.tsx @@ -114,7 +114,7 @@ export const DocVisibility = ({ doc }: DocVisibilityProps) => { arrowCss={css` color: ${colors['primary-800']} !important; `} - disabled={!doc.abilities.accesses_manage} + disabled={!canManage} showArrow={true} options={linkReachOptions} > diff --git a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx index 40b0a45b..4f37068d 100644 --- a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx +++ b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx @@ -63,11 +63,16 @@ export const DocsGridItem = ({ doc }: DocsGridItemProps) => { $align="center" $gap={spacings.xs} $flex={flexLeft} - $padding={{ right: 'md' }} + $padding={{ right: isDesktop ? 'md' : '3xs' }} > - {showAccesses && isDesktop && ( - <> + {showAccesses && ( + @@ -87,7 +92,7 @@ export const DocsGridItem = ({ doc }: DocsGridItemProps) => { /> - + )} diff --git a/src/frontend/apps/impress/src/pages/globals.css b/src/frontend/apps/impress/src/pages/globals.css index 04fd33fc..930d8359 100644 --- a/src/frontend/apps/impress/src/pages/globals.css +++ b/src/frontend/apps/impress/src/pages/globals.css @@ -41,19 +41,3 @@ main ::-webkit-scrollbar-thumb:hover, cursor: pointer; outline: inherit; } - -.c__modal__scroller:has(.noPadding) { - padding: 0 !important; - - .c__modal__close .c__button { - right: 5px; - top: 5px; - padding: 1.5rem 1rem; - } - - .c__modal__title { - font-size: var(--c--theme--font--sizes--xs); - padding: var(--c--theme--spacings--base); - margin-bottom: 0; - } -}