From 366fdff5a863a972944247a418301da077999005 Mon Sep 17 00:00:00 2001 From: MingLiang Wang Date: Fri, 23 Dec 2022 17:42:34 +0800 Subject: [PATCH 1/3] feat: default icon --- .../WorkspaceItem/LoginItem.tsx | 3 ++- .../WorkspaceSelector/WorkspaceSelector.tsx | 6 +++-- .../workspace-slider-bar/icons/icons.tsx | 27 +++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 packages/app/src/components/workspace-slider-bar/icons/icons.tsx diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/LoginItem.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/LoginItem.tsx index c800c31aee..93ad1f464f 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/LoginItem.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/LoginItem.tsx @@ -1,5 +1,6 @@ import { useModal } from '@/providers/global-modal-provider'; import { styled } from '@/styles'; +import { AffineIcon } from '../../icons/icons'; import { WorkspaceItemAvatar, LoginItemWrapper, @@ -11,7 +12,7 @@ export const LoginItem = () => { return ( triggerLoginModal()}> - A + AFFiNE diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx index e03a85ddfd..3c7d6bc3be 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx @@ -4,7 +4,7 @@ import { SelectorPopperContent } from './SelectorPopperContent'; import { useState } from 'react'; import { useAppState } from '@/providers/app-state-provider'; import { WorkspaceType } from '@pathfinder/data-services'; - +import { AffineIcon } from '../icons/icons'; export const WorkspaceSelector = () => { const [isShow, setIsShow] = useState(false); const { currentWorkspace, workspacesMeta, currentWorkspaceId, user } = @@ -21,7 +21,9 @@ export const WorkspaceSelector = () => { onVisibleChange={setIsShow} > - + + + {currentWorkspace?.meta.name || (workspaceMeta?.type === WorkspaceType.Private && user diff --git a/packages/app/src/components/workspace-slider-bar/icons/icons.tsx b/packages/app/src/components/workspace-slider-bar/icons/icons.tsx new file mode 100644 index 0000000000..2fee60b0f5 --- /dev/null +++ b/packages/app/src/components/workspace-slider-bar/icons/icons.tsx @@ -0,0 +1,27 @@ +export const AffineIcon = () => { + return ( + + + + + ); +}; From 2d52e49b3adc8ed6350ea5994465dee74aae9efa Mon Sep 17 00:00:00 2001 From: tzhangchi Date: Fri, 23 Dec 2022 18:08:30 +0800 Subject: [PATCH 2/3] test: add open login modal test --- .../app/src/components/login-modal/index.tsx | 2 +- .../WorkspaceItem/LoginItem.tsx | 5 ++++- tests/contact-us.spec.ts | 4 ++-- tests/login.spec.ts | 17 +++++++++++++++++ 4 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 tests/login.spec.ts diff --git a/packages/app/src/components/login-modal/index.tsx b/packages/app/src/components/login-modal/index.tsx index 8c2429c0eb..f398383196 100644 --- a/packages/app/src/components/login-modal/index.tsx +++ b/packages/app/src/components/login-modal/index.tsx @@ -11,7 +11,7 @@ interface LoginModalProps { export const LoginModal = ({ open, onClose }: LoginModalProps) => { return ( - +
{ const { triggerLoginModal } = useModal(); return ( - triggerLoginModal()}> + triggerLoginModal()} + data-testid="open-login-modal" + > A diff --git a/tests/contact-us.spec.ts b/tests/contact-us.spec.ts index c6a05382db..7c095a6056 100644 --- a/tests/contact-us.spec.ts +++ b/tests/contact-us.spec.ts @@ -5,10 +5,10 @@ loadPage(); test.describe('Open contact us', () => { test('Click about us', async ({ page }) => { - page.waitForTimeout(1000); + // page.waitForTimeout(1000); const currentWorkspace = page.getByTestId('current-workspace'); await currentWorkspace.click(); - + page.waitForTimeout(1000); await page .getByRole('tooltip', { name: 'A AFFiNE Log in to sync with affine About AFFiNE', diff --git a/tests/login.spec.ts b/tests/login.spec.ts new file mode 100644 index 0000000000..c1c41abae4 --- /dev/null +++ b/tests/login.spec.ts @@ -0,0 +1,17 @@ +import { test, expect, type Page } from '@playwright/test'; +import { loadPage } from './libs/load-page'; + +loadPage(); + +test.describe('Login Flow', () => { + test('Open Login Modal', async ({ page }) => { + await page.getByTestId('current-workspace').click(); + await page.waitForTimeout(800); + // why don't we use waitForSelector, It seems that waitForSelector not stable? + await page.getByTestId('open-login-modal').click(); + await page.waitForTimeout(800); + await page + .getByRole('heading', { name: 'Currently not logged in' }) + .click(); + }); +}); From 86e09b82abbc38b9a7fa0be15a7a995107d153cc Mon Sep 17 00:00:00 2001 From: tzhangchi Date: Fri, 23 Dec 2022 18:20:21 +0800 Subject: [PATCH 3/3] test: make the test of contact us more stable --- tests/contact-us.spec.ts | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/tests/contact-us.spec.ts b/tests/contact-us.spec.ts index 7c095a6056..bda0d52c30 100644 --- a/tests/contact-us.spec.ts +++ b/tests/contact-us.spec.ts @@ -5,18 +5,10 @@ loadPage(); test.describe('Open contact us', () => { test('Click about us', async ({ page }) => { - // page.waitForTimeout(1000); const currentWorkspace = page.getByTestId('current-workspace'); await currentWorkspace.click(); page.waitForTimeout(1000); - await page - .getByRole('tooltip', { - name: 'A AFFiNE Log in to sync with affine About AFFiNE', - }) - .locator('div') - .filter({ hasText: 'About AFFiNE' }) - .nth(2) - .click(); + await page.getByText('About AFFiNE').click(); const contactUsModal = page.locator( '[data-testid=contact-us-modal-content]' @@ -24,7 +16,6 @@ test.describe('Open contact us', () => { await expect(contactUsModal).toContainText('AFFiNE Community'); }); test('Click right-bottom corner contact icon', async ({ page }) => { - page.waitForTimeout(1000); const faqIcon = page.locator('[data-testid=faq-icon]'); const box = await faqIcon.boundingBox(); await expect(box?.x).not.toBeUndefined();