Increase storybook pages coverage (#4885)

On FE:
- refreshing metadata mocks
- updating jest tests
- fixing storybook pages coverage
- fixing storybook modules coverage
This commit is contained in:
Charles Bochet
2024-04-17 16:24:04 +02:00
committed by GitHub
parent 6804a90f2f
commit 75fd430149
46 changed files with 13679 additions and 7354 deletions

View File

@ -0,0 +1,10 @@
import { HelmetProvider } from 'react-helmet-async';
import { Decorator } from '@storybook/react';
export const HelmetProviderDecorator: Decorator = (Story) => {
return (
<HelmetProvider>
<Story />
</HelmetProvider>
);
};

View File

@ -1,12 +1,15 @@
import { HelmetProvider } from 'react-helmet-async';
import { MemoryRouter, Route, Routes } from 'react-router-dom';
import { ApolloProvider } from '@apollo/client';
import { loadDevMessages } from '@apollo/client/dev';
import { Decorator } from '@storybook/react';
import { RecoilRoot } from 'recoil';
import { ClientConfigProviderEffect } from '@/client-config/components/ClientConfigProviderEffect';
import { ObjectMetadataItemsProvider } from '@/object-metadata/components/ObjectMetadataItemsProvider';
import { ApolloMetadataClientMockedProvider } from '@/object-metadata/hooks/__mocks__/ApolloMetadataClientProvider';
import { SnackBarProviderScope } from '@/ui/feedback/snack-bar-manager/scopes/SnackBarProviderScope';
import { UserProviderEffect } from '@/users/components/UserProviderEffect';
import { ClientConfigProvider } from '~/modules/client-config/components/ClientConfigProvider';
import { DefaultLayout } from '~/modules/ui/layout/page/DefaultLayout';
import { UserProvider } from '~/modules/users/components/UserProvider';
@ -32,14 +35,23 @@ const computeLocation = (routePath: string, routeParams: RouteParams) => {
};
};
const ApolloStorybookDevLogEffect = () => {
loadDevMessages();
return <></>;
};
export const PageDecorator: Decorator<{
routePath: string;
routeParams: RouteParams;
}> = (Story, { args }) => (
<RecoilRoot>
<ApolloProvider client={mockedApolloClient}>
<ApolloStorybookDevLogEffect />
<ApolloMetadataClientMockedProvider>
<UserProviderEffect />
<UserProvider>
<ClientConfigProviderEffect />
<ClientConfigProvider>
<MemoryRouter
initialEntries={[

View File

@ -12,10 +12,10 @@ import {
mockedDuplicateCompanyData,
} from '~/testing/mock-data/companies';
import { mockedClientConfig } from '~/testing/mock-data/config';
import { mockedObjectMetadataItemsQueryResult } from '~/testing/mock-data/metadata';
import { mockedUsersData } from '~/testing/mock-data/users';
import { mockWorkspaceMembers } from '~/testing/mock-data/workspace-members';
import { mockedObjectMetadataItems } from './mock-data/metadata';
import { mockedPeopleData } from './mock-data/people';
import { mockedViewFieldsData } from './mock-data/view-fields';
import { mockedViewsData } from './mock-data/views';
@ -49,7 +49,7 @@ export const graphqlMocks = {
getOperationName(FIND_MANY_OBJECT_METADATA_ITEMS) ?? '',
() => {
return HttpResponse.json({
data: { objects: mockedObjectMetadataItems },
data: mockedObjectMetadataItemsQueryResult,
});
},
),

View File

@ -35,14 +35,18 @@ type MockedActivity = Pick<
| 'companyId'
| 'targetObjectNameSingular'
> & {
activity: Pick<Activity, 'id' | 'createdAt' | 'updatedAt'>;
person?: Pick<Person, 'id' | 'name' | 'avatarUrl'> | null;
company?: Pick<Company, 'id' | 'name' | 'domainName'> | null;
activity: Pick<Activity, 'id' | 'createdAt' | 'updatedAt' | '__typename'>;
person?: Pick<Person, 'id' | 'name' | 'avatarUrl' | '__typename'> | null;
company?: Pick<
Company,
'id' | 'name' | 'domainName' | '__typename'
> | null;
}
>;
};
const workspaceMember: WorkspaceMember = {
__typename: 'WorkspaceMember',
id: '374fe3a5-df1e-4119-afe0-2a62a2ba481e',
name: {
firstName: 'Charles',
@ -103,6 +107,7 @@ export const mockedActivities: Array<MockedActivity> = [
personId: null,
companyId: '89bb825c-171e-4bcc-9cf7-43448d6fb280',
company: {
__typename: 'Company',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb280',
name: 'Airbnb',
domainName: 'airbnb.com',
@ -110,6 +115,7 @@ export const mockedActivities: Array<MockedActivity> = [
person: null,
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb230',
activity: {
__typename: 'Activity',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb230',
createdAt: '2023-04-26T10:12:42.33625+00:00',
updatedAt: '2023-04-26T10:23:42.33625+00:00',
@ -124,6 +130,7 @@ export const mockedActivities: Array<MockedActivity> = [
personId: null,
companyId: 'b396e6b9-dc5c-4643-bcff-61b6cf7523ae',
company: {
__typename: 'Company',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
name: 'Aircall',
domainName: 'aircall.io',
@ -131,6 +138,7 @@ export const mockedActivities: Array<MockedActivity> = [
person: null,
activityId: 'b396e6b9-dc5c-4643-bcff-61b6cf7523ae',
activity: {
__typename: 'Activity',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb231',
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
@ -166,6 +174,7 @@ export const mockedActivities: Array<MockedActivity> = [
targetObjectNameSingular: 'person',
personId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b', // Alexandre
person: {
__typename: 'Person',
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b',
name: {
firstName: 'Alexandre',
@ -177,6 +186,7 @@ export const mockedActivities: Array<MockedActivity> = [
companyId: null,
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
activity: {
__typename: 'Activity',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
createdAt: '2023-04-26T10:12:42.33625+00:00',
updatedAt: '2023-04-26T10:23:42.33625+00:00',
@ -192,6 +202,7 @@ export const mockedActivities: Array<MockedActivity> = [
targetObjectNameSingular: 'person',
company: null,
person: {
__typename: 'Person',
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
name: {
firstName: 'Jean',
@ -201,6 +212,7 @@ export const mockedActivities: Array<MockedActivity> = [
},
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
activity: {
__typename: 'Activity',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),

View File

@ -11,6 +11,7 @@ type MockedCompany = Omit<Company, 'deletedAt'> & {
export const mockedCompaniesData: Array<MockedCompany> = [
{
__typename: 'Company',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
domainName: 'airbnb.com',
name: 'Airbnb',
@ -31,6 +32,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
Favorite: null,
accountOwnerId: mockedUsersData[0].id,
accountOwner: {
__typename: 'WorkspaceMember',
name: {
firstName: 'Charles',
lastName: 'Test',
@ -46,6 +48,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
},
},
{
__typename: 'Company',
id: 'b396e6b9-dc5c-4643-bcff-61b6cf7523ae',
domainName: 'aircall.io',
name: 'Aircall',
@ -68,6 +71,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
Favorite: null,
},
{
__typename: 'Company',
id: 'a674fa6c-1455-4c57-afaf-dd5dc086361d',
domainName: 'algolia.com',
name: 'Algolia',
@ -90,6 +94,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
accountOwnerId: null,
},
{
__typename: 'Company',
id: 'b1cfd51b-a831-455f-ba07-4e30671e1dc3',
domainName: 'apple.com',
name: 'Apple',
@ -112,6 +117,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
accountOwnerId: null,
},
{
__typename: 'Company',
id: '5c21e19e-e049-4393-8c09-3e3f8fb09ecb',
domainName: 'qonto.com',
name: 'Qonto',
@ -134,6 +140,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
accountOwnerId: null,
},
{
__typename: 'Company',
id: '9d162de6-cfbf-4156-a790-e39854dcd4eb',
domainName: 'facebook.com',
name: 'Facebook',
@ -156,6 +163,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
accountOwnerId: null,
},
{
__typename: 'Company',
id: '9d162de6-cfbf-4156-a790-e39854dcd4ef',
domainName: 'sequoia.com',
name: 'Sequoia',

View File

@ -1,8 +1,8 @@
export const mockedClientConfig = {
import { ClientConfig } from '~/generated-metadata/graphql';
export const mockedClientConfig: ClientConfig = {
signInPrefilled: true,
signUpDisabled: false,
dataModelSettingsEnabled: true,
developersSettingsEnabled: true,
debugMode: false,
authProviders: {
google: true,
@ -20,6 +20,12 @@ export const mockedClientConfig = {
supportFrontChatId: null,
__typename: 'Support',
},
sentry: {
dsn: 'MOCKED_DSN',
release: 'MOCKED_RELEASE',
environment: 'MOCKED_ENVIRONMENT',
__typename: 'Sentry',
},
billing: {
isBillingEnabled: true,
billingUrl: '',

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,7 @@ type MockedUser = Pick<
workspaceMember: WorkspaceMember | null;
locale: string;
defaultWorkspace: Workspace;
workspaces: Array<{ workspace: Workspace }>;
};
export const avatarUrl =
@ -30,12 +31,39 @@ export const mockDefaultWorkspace: Workspace = {
allowImpersonation: true,
subscriptionStatus: 'active',
activationStatus: 'active',
featureFlags: [],
featureFlags: [
{
id: '1492de61-5018-4368-8923-4f1eeaf988c4',
key: 'IS_AIRTABLE_INTEGRATION_ENABLED',
value: true,
workspaceId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
},
{
id: '1492de61-5018-4368-8923-4f1eeaf988c5',
key: 'IS_POSTGRESQL_INTEGRATION_ENABLED',
value: true,
workspaceId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
},
{
id: '1492de61-5018-4368-8923-4f1eeaf988c6',
key: 'IS_CALENDER_ENABLED',
value: true,
workspaceId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
},
],
createdAt: '2023-04-26T10:23:42.33625+00:00',
updatedAt: '2023-04-26T10:23:42.33625+00:00',
currentCacheVersion: '1',
currentBillingSubscription: {
__typename: 'BillingSubscription',
id: '7efbc3f7-6e5e-4128-957e-8d86808cdf6a',
interval: 'month',
status: 'active',
},
};
export const mockedWorkspaceMemberData: WorkspaceMember = {
__typename: 'WorkspaceMember',
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b',
colorScheme: 'Light',
avatarUrl,
@ -63,6 +91,7 @@ export const mockedUsersData: Array<MockedUser> = [
workspaceMember: mockedWorkspaceMemberData,
defaultWorkspace: mockDefaultWorkspace,
locale: 'en',
workspaces: [{ workspace: mockDefaultWorkspace }],
},
{
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6c',
@ -84,6 +113,7 @@ export const mockedUsersData: Array<MockedUser> = [
},
defaultWorkspace: mockDefaultWorkspace,
locale: 'en',
workspaces: [{ workspace: mockDefaultWorkspace }],
},
];
@ -109,6 +139,7 @@ export const mockedOnboardingUsersData: Array<MockedUser> = [
},
defaultWorkspace: mockDefaultWorkspace,
locale: 'en',
workspaces: [{ workspace: mockDefaultWorkspace }],
},
{
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
@ -123,5 +154,6 @@ export const mockedOnboardingUsersData: Array<MockedUser> = [
activationStatus: 'inactive',
},
locale: 'en',
workspaces: [{ workspace: mockDefaultWorkspace }],
},
];