Fix Storybook stories (Datamodel edition / preview / signOut) (#5019)
As per title ; some small changes on broken stories
This commit is contained in:
@ -8,6 +8,7 @@ import { useCreateActivityInCache } from '@/activities/hooks/useCreateActivityIn
|
|||||||
import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState';
|
import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState';
|
||||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||||
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
|
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
|
||||||
|
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
|
||||||
import { SnackBarProviderScope } from '@/ui/feedback/snack-bar-manager/scopes/SnackBarProviderScope';
|
import { SnackBarProviderScope } from '@/ui/feedback/snack-bar-manager/scopes/SnackBarProviderScope';
|
||||||
import { mockWorkspaceMembers } from '~/testing/mock-data/workspace-members';
|
import { mockWorkspaceMembers } from '~/testing/mock-data/workspace-members';
|
||||||
|
|
||||||
@ -64,18 +65,26 @@ describe('useCreateActivityInCache', () => {
|
|||||||
const setObjectMetadataItems = useSetRecoilState(
|
const setObjectMetadataItems = useSetRecoilState(
|
||||||
objectMetadataItemsState,
|
objectMetadataItemsState,
|
||||||
);
|
);
|
||||||
|
const setRecordStore = useSetRecoilState(
|
||||||
|
recordStoreFamilyState('1234'),
|
||||||
|
);
|
||||||
|
|
||||||
const res = useCreateActivityInCache();
|
const res = useCreateActivityInCache();
|
||||||
return {
|
return {
|
||||||
...res,
|
...res,
|
||||||
setCurrentWorkspaceMember,
|
setCurrentWorkspaceMember,
|
||||||
setObjectMetadataItems,
|
setObjectMetadataItems,
|
||||||
|
setRecordStore,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
{ wrapper: Wrapper },
|
{ wrapper: Wrapper },
|
||||||
);
|
);
|
||||||
|
|
||||||
act(() => {
|
act(() => {
|
||||||
|
result.current.setRecordStore({
|
||||||
|
id: '1234',
|
||||||
|
__typename: 'Person',
|
||||||
|
});
|
||||||
result.current.setCurrentWorkspaceMember(mockWorkspaceMembers[0]);
|
result.current.setCurrentWorkspaceMember(mockWorkspaceMembers[0]);
|
||||||
result.current.setObjectMetadataItems(mockObjectMetadataItems);
|
result.current.setObjectMetadataItems(mockObjectMetadataItems);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -41,6 +41,7 @@ const BooleanFieldInputWithContext = ({
|
|||||||
return (
|
return (
|
||||||
<FieldContextProvider
|
<FieldContextProvider
|
||||||
fieldDefinition={{
|
fieldDefinition={{
|
||||||
|
defaultValue: false,
|
||||||
fieldMetadataId: 'boolean',
|
fieldMetadataId: 'boolean',
|
||||||
label: 'Boolean',
|
label: 'Boolean',
|
||||||
iconName: 'Icon123',
|
iconName: 'Icon123',
|
||||||
|
|||||||
@ -35,6 +35,7 @@ const meta: Meta<typeof SettingsDataModelFieldSettingsFormCard> = {
|
|||||||
'Modules/Settings/DataModel/Fields/Forms/SettingsDataModelFieldSettingsFormCard',
|
'Modules/Settings/DataModel/Fields/Forms/SettingsDataModelFieldSettingsFormCard',
|
||||||
component: SettingsDataModelFieldSettingsFormCard,
|
component: SettingsDataModelFieldSettingsFormCard,
|
||||||
decorators: [
|
decorators: [
|
||||||
|
MemoryRouterDecorator,
|
||||||
ComponentDecorator,
|
ComponentDecorator,
|
||||||
ObjectMetadataItemsDecorator,
|
ObjectMetadataItemsDecorator,
|
||||||
SnackBarDecorator,
|
SnackBarDecorator,
|
||||||
@ -61,7 +62,6 @@ const relationFieldMetadataItem = mockedPersonObjectMetadataItem.fields.find(
|
|||||||
)!;
|
)!;
|
||||||
|
|
||||||
export const WithRelationForm: Story = {
|
export const WithRelationForm: Story = {
|
||||||
decorators: [MemoryRouterDecorator],
|
|
||||||
args: {
|
args: {
|
||||||
fieldMetadataItem: mockedCompanyObjectMetadataItem.fields.find(
|
fieldMetadataItem: mockedCompanyObjectMetadataItem.fields.find(
|
||||||
({ name }) => name === 'people',
|
({ name }) => name === 'people',
|
||||||
|
|||||||
@ -18,6 +18,7 @@ const meta: Meta<typeof SettingsDataModelFieldPreviewCard> = {
|
|||||||
'Modules/Settings/DataModel/Fields/Preview/SettingsDataModelFieldPreviewCard',
|
'Modules/Settings/DataModel/Fields/Preview/SettingsDataModelFieldPreviewCard',
|
||||||
component: SettingsDataModelFieldPreviewCard,
|
component: SettingsDataModelFieldPreviewCard,
|
||||||
decorators: [
|
decorators: [
|
||||||
|
MemoryRouterDecorator,
|
||||||
ComponentDecorator,
|
ComponentDecorator,
|
||||||
ObjectMetadataItemsDecorator,
|
ObjectMetadataItemsDecorator,
|
||||||
SnackBarDecorator,
|
SnackBarDecorator,
|
||||||
@ -64,7 +65,6 @@ export const Date: Story = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const Link: Story = {
|
export const Link: Story = {
|
||||||
decorators: [MemoryRouterDecorator],
|
|
||||||
args: {
|
args: {
|
||||||
fieldMetadataItem: mockedCompanyObjectMetadataItem.fields.find(
|
fieldMetadataItem: mockedCompanyObjectMetadataItem.fields.find(
|
||||||
({ type }) => type === FieldMetadataType.Link,
|
({ type }) => type === FieldMetadataType.Link,
|
||||||
@ -91,7 +91,6 @@ export const Rating: Story = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const Relation: Story = {
|
export const Relation: Story = {
|
||||||
decorators: [MemoryRouterDecorator],
|
|
||||||
args: {
|
args: {
|
||||||
fieldMetadataItem: mockedPersonObjectMetadataItem.fields.find(
|
fieldMetadataItem: mockedPersonObjectMetadataItem.fields.find(
|
||||||
({ name }) => name === 'company',
|
({ name }) => name === 'company',
|
||||||
@ -100,14 +99,3 @@ export const Relation: Story = {
|
|||||||
relationObjectMetadataItem: mockedCompanyObjectMetadataItem,
|
relationObjectMetadataItem: mockedCompanyObjectMetadataItem,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Todo: re-enable this test once useObjectMetadataItem has been split and refactored into smaller functions.
|
|
||||||
// Right now, as the workspace is not set, the hook things the user is not logged in and it is not possible to have a custom object
|
|
||||||
// export const Custom: Story = {
|
|
||||||
// args: {
|
|
||||||
// fieldMetadataItem: mockedCustomObjectMetadataItem.fields.find(
|
|
||||||
// ({ type }) => type === FieldMetadataType.Text,
|
|
||||||
// ),
|
|
||||||
// objectMetadataItem: mockedCustomObjectMetadataItem,
|
|
||||||
// },
|
|
||||||
// };
|
|
||||||
|
|||||||
@ -29,7 +29,7 @@ export const WorkspaceInviteLink = ({
|
|||||||
const { enqueueSnackBar } = useSnackBar();
|
const { enqueueSnackBar } = useSnackBar();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledContainer>
|
<StyledContainer data-chromatic="ignore">
|
||||||
<StyledLinkContainer>
|
<StyledLinkContainer>
|
||||||
<TextInput value={inviteLink} disabled fullWidth />
|
<TextInput value={inviteLink} disabled fullWidth />
|
||||||
</StyledLinkContainer>
|
</StyledLinkContainer>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Meta, StoryObj } from '@storybook/react';
|
import { Meta, StoryObj } from '@storybook/react';
|
||||||
import { within } from '@storybook/test';
|
import { userEvent, within } from '@storybook/test';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
PageDecorator,
|
PageDecorator,
|
||||||
@ -13,7 +13,10 @@ const meta: Meta<PageDecoratorArgs> = {
|
|||||||
title: 'Pages/Settings/SettingsProfile',
|
title: 'Pages/Settings/SettingsProfile',
|
||||||
component: SettingsProfile,
|
component: SettingsProfile,
|
||||||
decorators: [PageDecorator],
|
decorators: [PageDecorator],
|
||||||
args: { routePath: '/settings/profile' },
|
args: {
|
||||||
|
routePath: '/settings/profile',
|
||||||
|
additionalRoutes: ['/welcome'],
|
||||||
|
},
|
||||||
parameters: {
|
parameters: {
|
||||||
msw: graphqlMocks,
|
msw: graphqlMocks,
|
||||||
},
|
},
|
||||||
@ -29,6 +32,7 @@ export const LogOut: Story = {
|
|||||||
play: async ({ canvasElement }) => {
|
play: async ({ canvasElement }) => {
|
||||||
const canvas = within(canvasElement);
|
const canvas = within(canvasElement);
|
||||||
const logoutButton = await canvas.findByText('Logout');
|
const logoutButton = await canvas.findByText('Logout');
|
||||||
await logoutButton.click();
|
|
||||||
|
await userEvent.click(logoutButton);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import { FullHeightStorybookLayout } from '../FullHeightStorybookLayout';
|
|||||||
export type PageDecoratorArgs = {
|
export type PageDecoratorArgs = {
|
||||||
routePath: string;
|
routePath: string;
|
||||||
routeParams: RouteParams;
|
routeParams: RouteParams;
|
||||||
|
additionalRoutes?: string[];
|
||||||
};
|
};
|
||||||
|
|
||||||
type RouteParams = {
|
type RouteParams = {
|
||||||
@ -44,37 +45,47 @@ const ApolloStorybookDevLogEffect = () => {
|
|||||||
export const PageDecorator: Decorator<{
|
export const PageDecorator: Decorator<{
|
||||||
routePath: string;
|
routePath: string;
|
||||||
routeParams: RouteParams;
|
routeParams: RouteParams;
|
||||||
}> = (Story, { args }) => (
|
additionalRoutes?: string[];
|
||||||
<RecoilRoot>
|
}> = (Story, { args }) => {
|
||||||
<ApolloProvider client={mockedApolloClient}>
|
return (
|
||||||
<ApolloStorybookDevLogEffect />
|
<RecoilRoot>
|
||||||
<ApolloMetadataClientMockedProvider>
|
<ApolloProvider client={mockedApolloClient}>
|
||||||
<UserProviderEffect />
|
<ApolloStorybookDevLogEffect />
|
||||||
<UserProvider>
|
<ApolloMetadataClientMockedProvider>
|
||||||
<ClientConfigProviderEffect />
|
<UserProviderEffect />
|
||||||
<ClientConfigProvider>
|
<UserProvider>
|
||||||
<MemoryRouter
|
<ClientConfigProviderEffect />
|
||||||
initialEntries={[
|
<ClientConfigProvider>
|
||||||
computeLocation(args.routePath, args.routeParams),
|
<MemoryRouter
|
||||||
]}
|
initialEntries={[
|
||||||
>
|
computeLocation(args.routePath, args.routeParams),
|
||||||
<FullHeightStorybookLayout>
|
]}
|
||||||
<HelmetProvider>
|
>
|
||||||
<SnackBarProviderScope snackBarManagerScopeId="snack-bar-manager">
|
<FullHeightStorybookLayout>
|
||||||
<ObjectMetadataItemsProvider>
|
<HelmetProvider>
|
||||||
<Routes>
|
<SnackBarProviderScope snackBarManagerScopeId="snack-bar-manager">
|
||||||
<Route element={<DefaultLayout />}>
|
<ObjectMetadataItemsProvider>
|
||||||
<Route path={args.routePath} element={<Story />} />
|
<Routes>
|
||||||
</Route>
|
<Route element={<DefaultLayout />}>
|
||||||
</Routes>
|
<Route path={args.routePath} element={<Story />} />
|
||||||
</ObjectMetadataItemsProvider>
|
{args.additionalRoutes?.map((route) => (
|
||||||
</SnackBarProviderScope>
|
<Route
|
||||||
</HelmetProvider>
|
key={route}
|
||||||
</FullHeightStorybookLayout>
|
path={route}
|
||||||
</MemoryRouter>
|
element={<div>Navigated to {route}</div>}
|
||||||
</ClientConfigProvider>
|
/>
|
||||||
</UserProvider>
|
))}
|
||||||
</ApolloMetadataClientMockedProvider>
|
</Route>
|
||||||
</ApolloProvider>
|
</Routes>
|
||||||
</RecoilRoot>
|
</ObjectMetadataItemsProvider>
|
||||||
);
|
</SnackBarProviderScope>
|
||||||
|
</HelmetProvider>
|
||||||
|
</FullHeightStorybookLayout>
|
||||||
|
</MemoryRouter>
|
||||||
|
</ClientConfigProvider>
|
||||||
|
</UserProvider>
|
||||||
|
</ApolloMetadataClientMockedProvider>
|
||||||
|
</ApolloProvider>
|
||||||
|
</RecoilRoot>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user