From 0df30e43c6ab3b8289a7a869c41e04cd446cf830 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Tue, 15 Aug 2023 16:58:14 -0500 Subject: [PATCH] feat(storybook): add not found page (#3767) --- .github/workflows/build.yml | 2 +- apps/storybook/src/stories/core.stories.tsx | 31 +++++++++++++++++---- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d1f0e0dd92..44423069f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -152,7 +152,7 @@ jobs: with: workingDir: apps/storybook buildScriptName: build - onlyStoryNames: Preview/Core + onlyStoryNames: 'Preview/**' projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} build-core: diff --git a/apps/storybook/src/stories/core.stories.tsx b/apps/storybook/src/stories/core.stories.tsx index e8023e3e8a..22c0932065 100644 --- a/apps/storybook/src/stories/core.stories.tsx +++ b/apps/storybook/src/stories/core.stories.tsx @@ -1,7 +1,7 @@ import { routes } from '@affine/core/router'; -import { expect } from '@storybook/jest'; +import { assertExists } from '@blocksuite/global/utils'; import type { StoryContext, StoryFn } from '@storybook/react'; -import { userEvent } from '@storybook/testing-library'; +import { userEvent, waitFor } from '@storybook/testing-library'; import { Outlet, useLocation } from 'react-router-dom'; import { reactRouterOutlets, @@ -27,7 +27,6 @@ export default { export const Index: StoryFn = () => { return ; }; - Index.decorators = [withRouter, withCleanLocalStorage]; Index.parameters = { reactRouter: reactRouterParameters({ @@ -38,13 +37,20 @@ Index.parameters = { export const SettingPage: StoryFn = () => { return ; }; - SettingPage.play = async ({ canvasElement }) => { - await new Promise(resolve => setTimeout(resolve, 1000)); + await waitFor( + () => { + assertExists( + canvasElement.querySelector('[data-testid="settings-modal-trigger"]') + ); + }, + { + timeout: 5000, + } + ); const settingModalBtn = canvasElement.querySelector( '[data-testid="settings-modal-trigger"]' ) as Element; - expect(settingModalBtn).not.toBeNull(); await userEvent.click(settingModalBtn); }; SettingPage.decorators = [withRouter, withCleanLocalStorage]; @@ -53,3 +59,16 @@ SettingPage.parameters = { routing: reactRouterOutlets(routes), }), }; + +export const NotFoundPage: StoryFn = () => { + return ; +}; +NotFoundPage.decorators = [withRouter, withCleanLocalStorage]; +NotFoundPage.parameters = { + reactRouter: reactRouterParameters({ + routing: reactRouterOutlets(routes), + location: { + path: '/404', + }, + }), +};