fix(storybook): fix test (#5325)

<img width="440" alt="image" src="https://github.com/toeverything/AFFiNE/assets/102217452/329f9c12-cc0b-4aae-9352-3811ab0a27a6">
This commit is contained in:
JimmFly
2023-12-18 13:36:56 +00:00
parent a1c9ac80d8
commit cef9e0539d
9 changed files with 41 additions and 30 deletions
@@ -21,7 +21,7 @@ export function AddPageButton({
return ( return (
<button <button
data-testid="new-page-button" data-testid="sidebar-new-page-button"
style={style} style={style}
className={clsx([styles.root, className])} className={clsx([styles.root, className])}
onClick={onClick} onClick={onClick}
@@ -95,7 +95,6 @@ export const NewPageButton = ({
> >
<DropdownButton <DropdownButton
size={size} size={size}
data-testid="new-page-button"
onClick={useCallback(() => { onClick={useCallback(() => {
createNewPage(); createNewPage();
setOpen(false); setOpen(false);
@@ -72,7 +72,9 @@ const PageListHeader = () => {
return ( return (
<div className={styles.allPagesHeader}> <div className={styles.allPagesHeader}>
<div className={styles.allPagesHeaderTitle}>{title}</div> <div className={styles.allPagesHeaderTitle}>{title}</div>
<NewPageButton>{t['New Page']()}</NewPageButton> <NewPageButton testId="new-page-button-trigger">
{t['New Page']()}
</NewPageButton>
</div> </div>
); );
}; };
@@ -180,16 +182,18 @@ const NewPageButton = ({
className, className,
children, children,
size, size,
testId,
}: PropsWithChildren<{ }: PropsWithChildren<{
className?: string; className?: string;
size?: 'small' | 'default'; size?: 'small' | 'default';
testId?: string;
}>) => { }>) => {
const currentWorkspace = useAtomValue(waitForCurrentWorkspaceAtom); const currentWorkspace = useAtomValue(waitForCurrentWorkspaceAtom);
const { importFile, createEdgeless, createPage } = usePageHelper( const { importFile, createEdgeless, createPage } = usePageHelper(
currentWorkspace.blockSuiteWorkspace currentWorkspace.blockSuiteWorkspace
); );
return ( return (
<div className={className}> <div className={className} data-testid={testId}>
<PureNewPageButton <PureNewPageButton
size={size} size={size}
importFile={importFile} importFile={importFile}
+4 -4
View File
@@ -14,7 +14,7 @@ const historyShortcut = async (page: Page, command: 'goBack' | 'goForward') => {
}; };
test('new page', async ({ page, workspace }) => { test('new page', async ({ page, workspace }) => {
await page.getByTestId('new-page-button').click({ await page.getByTestId('sidebar-new-page-button').click({
delay: 100, delay: 100,
}); });
await page.waitForSelector('v-line'); await page.waitForSelector('v-line');
@@ -32,7 +32,7 @@ test('app sidebar router forward/back', async ({ page }) => {
{ {
// create pages // create pages
await page.waitForTimeout(500); await page.waitForTimeout(500);
await page.getByTestId('new-page-button').click({ await page.getByTestId('sidebar-new-page-button').click({
delay: 100, delay: 100,
}); });
await page.waitForSelector('v-line'); await page.waitForSelector('v-line');
@@ -42,7 +42,7 @@ test('app sidebar router forward/back', async ({ page }) => {
delay: 100, delay: 100,
}); });
await page.waitForTimeout(500); await page.waitForTimeout(500);
await page.getByTestId('new-page-button').click({ await page.getByTestId('sidebar-new-page-button').click({
delay: 100, delay: 100,
}); });
await page.waitForSelector('v-line'); await page.waitForSelector('v-line');
@@ -52,7 +52,7 @@ test('app sidebar router forward/back', async ({ page }) => {
delay: 100, delay: 100,
}); });
await page.waitForTimeout(500); await page.waitForTimeout(500);
await page.getByTestId('new-page-button').click({ await page.getByTestId('sidebar-new-page-button').click({
delay: 100, delay: 100,
}); });
await page.waitForSelector('v-line'); await page.waitForSelector('v-line');
+4 -3
View File
@@ -26,12 +26,13 @@ import type { Page } from '@playwright/test';
import { expect } from '@playwright/test'; import { expect } from '@playwright/test';
function getAllPage(page: Page) { function getAllPage(page: Page) {
const newPageButton = page.getByTestId('new-page-button'); const newPageButton = page.getByTestId('new-page-button-trigger');
const newPageDropdown = newPageButton.locator('svg'); const newPageDropdown = newPageButton.locator('svg');
const edgelessBlockCard = page.getByTestId('switch-edgeless-mode-button'); const edgelessBlockCard = page.getByTestId('new-edgeless-button-in-all-page');
async function clickNewPageButton() { async function clickNewPageButton() {
return newPageButton.click(); const newPageButton = page.getByTestId('new-page-button-trigger');
return await newPageButton.click();
} }
async function clickNewEdgelessDropdown() { async function clickNewEdgelessDropdown() {
+1 -1
View File
@@ -16,7 +16,7 @@ export async function waitForAllPagesLoad(page: Page) {
export async function clickNewPageButton(page: Page) { export async function clickNewPageButton(page: Page) {
// fixme(himself65): if too fast, the page will crash // fixme(himself65): if too fast, the page will crash
await page.getByTestId('new-page-button').first().click({ await page.getByTestId('sidebar-new-page-button').click({
delay: 100, delay: 100,
}); });
await waitForEditorLoad(page); await waitForEditorLoad(page);
+1 -1
View File
@@ -13,5 +13,5 @@ export async function clickSideBarCurrentWorkspaceBanner(page: Page) {
} }
export async function clickNewPageButton(page: Page) { export async function clickNewPageButton(page: Page) {
return page.getByTestId('new-page-button').click(); return page.getByTestId('sidebar-new-page-button').click();
} }
+1
View File
@@ -116,6 +116,7 @@ bootstrapPluginSystem(store).catch(err => {
workspaceManager workspaceManager
.createWorkspace(WorkspaceFlavour.LOCAL, async w => { .createWorkspace(WorkspaceFlavour.LOCAL, async w => {
w.meta.setName('test-workspace'); w.meta.setName('test-workspace');
w.meta.writeVersion(w);
}) })
.then(id => { .then(id => {
store.set( store.set(
+23 -17
View File
@@ -37,16 +37,17 @@ export const SettingPage: StoryFn = () => {
}; };
SettingPage.play = async ({ canvasElement, step }) => { SettingPage.play = async ({ canvasElement, step }) => {
const canvas = within(canvasElement); const canvas = within(canvasElement);
await waitFor( await waitFor(async () => {
() => { assertExists(
assertExists(canvasElement.querySelector('v-line')); document.body.querySelector(
}, '[data-testid="slider-bar-workspace-setting-button"]'
{ )
timeout: 10000, );
} });
);
await step('click setting modal button', async () => { await step('click setting modal button', async () => {
await userEvent.click(canvas.getByTestId('settings-modal-trigger')); await userEvent.click(
canvas.getByTestId('slider-bar-workspace-setting-button')
);
}); });
await waitFor(async () => { await waitFor(async () => {
assertExists( assertExists(
@@ -120,14 +121,13 @@ export const SearchPage: StoryFn = () => {
}; };
SearchPage.play = async ({ canvasElement }) => { SearchPage.play = async ({ canvasElement }) => {
const canvas = within(canvasElement); const canvas = within(canvasElement);
await waitFor( await waitFor(async () => {
() => { assertExists(
assertExists(canvasElement.querySelector('v-line')); document.body.querySelector(
}, '[data-testid="slider-bar-quick-search-button"]'
{ )
timeout: 10000, );
} });
);
await userEvent.click(canvas.getByTestId('slider-bar-quick-search-button')); await userEvent.click(canvas.getByTestId('slider-bar-quick-search-button'));
await waitFor( await waitFor(
() => { () => {
@@ -153,6 +153,12 @@ export const ImportPage: StoryFn = () => {
}; };
ImportPage.play = async ({ canvasElement }) => { ImportPage.play = async ({ canvasElement }) => {
const canvas = within(canvasElement); const canvas = within(canvasElement);
await waitFor(async () => {
assertExists(
document.body.querySelector('[data-testid="sidebar-new-page-button"]')
);
});
await userEvent.click(canvas.getByTestId('sidebar-new-page-button'));
await waitFor( await waitFor(
() => { () => {
assertExists(canvasElement.querySelector('v-line')); assertExists(canvasElement.querySelector('v-line'));