Skip to content

Commit ab12d9e

Browse files
authored
Fix perf tests storybook (#6584)
As title
1 parent b4e2ada commit ab12d9e

12 files changed

+195
-57
lines changed

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/ActorFieldDisplay.perf.stories.tsx

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { ActorFieldDisplay } from '@/object-record/record-field/meta-types/display/components/ActorFieldDisplay';
2-
import { FieldActorValue } from '@/object-record/record-field/types/FieldMetadata';
32
import { Meta, StoryObj } from '@storybook/react';
43
import { ComponentDecorator } from 'twenty-ui';
54

@@ -13,11 +12,10 @@ const meta: Meta = {
1312
decorators: [
1413
MemoryRouterDecorator,
1514
ChipGeneratorsDecorator,
16-
getFieldDecorator('person', 'actor', {
15+
getFieldDecorator('company', 'createdBy', {
16+
id: '1',
1717
name: 'John Doe',
18-
source: 'API',
19-
workspaceMemberId: undefined,
20-
} satisfies FieldActorValue),
18+
}),
2119
ComponentDecorator,
2220
],
2321
component: ActorFieldDisplay,

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/AddressFieldDisplay.perf.stories.tsx

+11-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,16 @@ const meta: Meta = {
1111
title: 'UI/Data/Field/Display/AddressFieldDisplay',
1212
decorators: [
1313
MemoryRouterDecorator,
14-
getFieldDecorator('person', 'testAddress'),
14+
getFieldDecorator('company', 'address', {
15+
addressCity: 'San Francisco',
16+
addressCountry: 'United States',
17+
addressStreet1: '1234 Elm Street',
18+
addressStreet2: 'Apt 1234',
19+
addressLat: 0,
20+
addressLng: 0,
21+
addressPostcode: '12345',
22+
addressState: 'CA',
23+
} as FieldAddressValue),
1524
ComponentDecorator,
1625
],
1726
component: AddressFieldDisplay,
@@ -32,7 +41,7 @@ export const Elipsis: Story = {
3241
container: { width: 100 },
3342
},
3443
decorators: [
35-
getFieldDecorator('person', 'testAddress', {
44+
getFieldDecorator('company', 'address', {
3645
addressCity:
3746
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam',
3847
addressCountry: 'United States',

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/BooleanFieldDisplay.perf.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const meta: Meta = {
1010
title: 'UI/Data/Field/Display/BooleanFieldDisplay',
1111
decorators: [
1212
MemoryRouterDecorator,
13-
getFieldDecorator('person', 'testBoolean'),
13+
getFieldDecorator('company', 'idealCustomerProfile'),
1414
ComponentDecorator,
1515
],
1616
component: BooleanFieldDisplay,

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/JsonFieldDisplay.perf.stories.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ const meta: Meta = {
1010
title: 'UI/Data/Field/Display/JsonFieldDisplay',
1111
decorators: [
1212
MemoryRouterDecorator,
13-
getFieldDecorator('person', 'testJson'),
13+
getFieldDecorator('company', 'testRawJson', {
14+
key1: 'value1',
15+
key2: 'value2',
16+
}),
1417
ComponentDecorator,
1518
],
1619
component: JsonFieldDisplay,

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/LinkFieldDisplay.perf.stories.tsx

-34
This file was deleted.

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/LinksFieldDisplay.perf.stories.tsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { useContext, useEffect } from 'react';
21
import { Meta, StoryObj } from '@storybook/react';
2+
import { useContext, useEffect } from 'react';
33
import { ComponentDecorator } from 'twenty-ui';
44

55
import { FieldFocusContext } from '@/object-record/record-field/contexts/FieldFocusContext';
@@ -23,7 +23,11 @@ const meta: Meta = {
2323
title: 'UI/Data/Field/Display/LinksFieldDisplay',
2424
decorators: [
2525
MemoryRouterDecorator,
26-
getFieldDecorator('person', 'testLinks'),
26+
getFieldDecorator('company', 'domainName', {
27+
primaryLinkUrl: 'https://www.google.com',
28+
primaryLinkLabel: 'Google',
29+
secondaryLinks: ['https://www.toto.com'],
30+
}),
2731
ComponentDecorator,
2832
],
2933
component: LinksFieldDisplay,

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/MultiSelectFieldDisplay.perf.stories.tsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { useContext, useEffect } from 'react';
21
import { Meta, StoryObj } from '@storybook/react';
2+
import { useContext, useEffect } from 'react';
33
import { ComponentDecorator } from 'twenty-ui';
44

55
import { FieldFocusContext } from '@/object-record/record-field/contexts/FieldFocusContext';
@@ -23,7 +23,11 @@ const meta: Meta = {
2323
title: 'UI/Data/Field/Display/MultiSelectFieldDisplay',
2424
decorators: [
2525
MemoryRouterDecorator,
26-
getFieldDecorator('person', 'testMultiSelect'),
26+
getFieldDecorator('company', 'testMultiSelect', [
27+
'Option 1',
28+
'Option 2',
29+
'Option 3',
30+
]),
2731
ComponentDecorator,
2832
],
2933
component: MultiSelectFieldDisplay,

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/RatingFieldDisplay.perf.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const meta: Meta = {
1010
title: 'UI/Data/Field/Display/RatingFieldDisplay',
1111
decorators: [
1212
MemoryRouterDecorator,
13-
getFieldDecorator('person', 'testRating'),
13+
getFieldDecorator('company', 'testRating'),
1414
ComponentDecorator,
1515
],
1616
component: RatingFieldDisplay,

packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/__stories__/perf/SelectFieldDisplay.perf.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const meta: Meta = {
1010
title: 'UI/Data/Field/Display/SelectFieldDisplay',
1111
decorators: [
1212
MemoryRouterDecorator,
13-
getFieldDecorator('person', 'testSelect'),
13+
getFieldDecorator('task', 'status'),
1414
ComponentDecorator,
1515
],
1616
component: SelectFieldDisplay,

packages/twenty-front/src/testing/decorators/getFieldDecorator.tsx

+31-8
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,21 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord';
1414
import { getCompaniesMock } from '~/testing/mock-data/companies';
1515
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/objectMetadataItems';
1616
import { getPeopleMock } from '~/testing/mock-data/people';
17+
import { mockedTasks } from '~/testing/mock-data/tasks';
1718
import { isDefined } from '~/utils/isDefined';
1819

1920
const RecordMockSetterEffect = ({
2021
companies,
2122
people,
23+
tasks,
2224
}: {
2325
companies: ObjectRecord[];
2426
people: ObjectRecord[];
27+
tasks: ObjectRecord[];
2528
}) => {
2629
const setRecordValue = useSetRecordValue();
2730

28-
const setRecordInBothStores = useRecoilCallback(
31+
const setRecordInStores = useRecoilCallback(
2932
({ set }) =>
3033
(record: ObjectRecord) => {
3134
set(recordStoreFamilyState(record.id), record);
@@ -36,20 +39,24 @@ const RecordMockSetterEffect = ({
3639

3740
useEffect(() => {
3841
for (const company of companies) {
39-
setRecordInBothStores(company);
42+
setRecordInStores(company);
4043
}
4144

4245
for (const person of people) {
43-
setRecordInBothStores(person);
46+
setRecordInStores(person);
4447
}
45-
}, [setRecordInBothStores, companies, people]);
48+
49+
for (const task of tasks) {
50+
setRecordInStores(task);
51+
}
52+
}, [companies, people, tasks, setRecordInStores]);
4653

4754
return null;
4855
};
4956

5057
export const getFieldDecorator =
5158
(
52-
objectNameSingular: 'company' | 'person',
59+
objectNameSingular: 'company' | 'person' | 'task',
5360
fieldName: string,
5461
fieldValue?: any,
5562
): Decorator =>
@@ -74,7 +81,19 @@ export const getFieldDecorator =
7481
]
7582
: peopleMock;
7683

77-
const record = objectNameSingular === 'company' ? companies[0] : people[0];
84+
const tasksMock = mockedTasks;
85+
86+
const tasks =
87+
objectNameSingular === 'task'
88+
? [{ ...tasksMock[0], [fieldName]: fieldValue }, ...tasksMock.slice(1)]
89+
: tasksMock;
90+
91+
const record =
92+
objectNameSingular === 'company'
93+
? companies[0]
94+
: objectNameSingular === 'person'
95+
? people[0]
96+
: tasks[0];
7897

7998
if (isDefined(fieldValue)) {
8099
(record as any)[fieldName] = fieldValue;
@@ -113,13 +132,17 @@ export const getFieldDecorator =
113132
isLabelIdentifier,
114133
fieldDefinition: formatFieldMetadataItemAsColumnDefinition({
115134
field: fieldMetadataItem,
116-
position: record.position ?? 0,
135+
position: 0,
117136
objectMetadataItem,
118137
}),
119138
hotkeyScope: 'hotkey-scope',
120139
}}
121140
>
122-
<RecordMockSetterEffect companies={companies} people={people} />
141+
<RecordMockSetterEffect
142+
companies={companies}
143+
people={people}
144+
tasks={tasks}
145+
/>
123146
<Story />
124147
</FieldContext.Provider>
125148
</RecordFieldValueSelectorContextProvider>

packages/twenty-front/src/testing/mock-data/generated/standard-metadata-query-result.ts

+69
Original file line numberDiff line numberDiff line change
@@ -7936,6 +7936,75 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery =
79367936
"fromRelationMetadata": null,
79377937
"toRelationMetadata": null
79387938
}
7939+
},
7940+
{
7941+
"__typename": "fieldEdge",
7942+
"node": {
7943+
"__typename": "field",
7944+
"id": "af19a3ba-b725-4b9d-a0b7-8bf6b04fadds",
7945+
"type": "MULTI_SELECT",
7946+
"name": "testMultiSelect",
7947+
"label": "Test Multi Select",
7948+
"description": "Test Multi Select",
7949+
"icon": "IconSelect",
7950+
"isCustom": false,
7951+
"isActive": true,
7952+
"isSystem": true,
7953+
"isNullable": false,
7954+
"createdAt": "2024-08-02T16:00:05.938Z",
7955+
"updatedAt": "2024-08-02T16:00:05.938Z",
7956+
"defaultValue": null,
7957+
"options": null,
7958+
"relationDefinition": null,
7959+
"fromRelationMetadata": null,
7960+
"toRelationMetadata": null
7961+
}
7962+
},
7963+
{
7964+
"__typename": "fieldEdge",
7965+
"node": {
7966+
"__typename": "field",
7967+
"id": "tt929592-4f74-419e-8b26-6d216859078f",
7968+
"type": "RAW_JSON",
7969+
"name": "testRawJson",
7970+
"label": "Test Raw Json",
7971+
"description": "Json value for event details",
7972+
"icon": "IconListDetails",
7973+
"isCustom": false,
7974+
"isActive": true,
7975+
"isSystem": true,
7976+
"isNullable": true,
7977+
"createdAt": "2024-08-02T16:00:05.938Z",
7978+
"updatedAt": "2024-08-02T16:00:05.938Z",
7979+
"defaultValue": null,
7980+
"options": null,
7981+
"relationDefinition": null,
7982+
"fromRelationMetadata": null,
7983+
"toRelationMetadata": null
7984+
}
7985+
},
7986+
{
7987+
"__typename": "fieldEdge",
7988+
"node": {
7989+
"__typename": "field",
7990+
"id": "vv929592-4f74-419e-8b26-6d216859078f",
7991+
"type": "RATING",
7992+
"name": "testRating",
7993+
"label": "Rating",
7994+
"description": "Rating value",
7995+
"icon": "IconListDetails",
7996+
"isCustom": false,
7997+
"isActive": true,
7998+
"isSystem": true,
7999+
"isNullable": true,
8000+
"createdAt": "2024-08-02T16:00:05.938Z",
8001+
"updatedAt": "2024-08-02T16:00:05.938Z",
8002+
"defaultValue": null,
8003+
"options": null,
8004+
"relationDefinition": null,
8005+
"fromRelationMetadata": null,
8006+
"toRelationMetadata": null
8007+
}
79398008
},
79408009
{
79418010
"__typename": "fieldEdge",

0 commit comments

Comments
 (0)