Fixed CI : 
- Unit test for useTimelineActivities
- Story for field creation with new 2-step process
This commit is contained in:
Lucas Bordeau
2024-09-11 12:15:12 +02:00
committed by GitHub
parent 1317e1c4f2
commit b506332420
3 changed files with 37 additions and 7 deletions

View File

@ -2,14 +2,18 @@ import { renderHook } from '@testing-library/react';
import { useTimelineActivities } from '@/activities/timelineActivities/hooks/useTimelineActivities';
import { ReactNode } from 'react';
import { RecoilRoot } from 'recoil';
import { getJestHookWrapper } from '~/testing/jest/getJestHookWrapper';
jest.mock('@/object-record/hooks/useFindManyRecords', () => ({
useFindManyRecords: jest.fn(),
}));
const Wrappers = getJestHookWrapper({
apolloMocks: [],
});
const Wrapper = ({ children }: { children: ReactNode }) => (
<RecoilRoot>{children}</RecoilRoot>
<Wrappers>{children}</Wrappers>
);
describe('useTimelineActivities', () => {
@ -46,6 +50,7 @@ describe('useTimelineActivities', () => {
updatedAt: '2024-03-22T08:28:44.830Z',
},
];
const mockTargetableObject = {
id: '1',
targetObjectNameSingular: 'Opportunity',
@ -54,15 +59,28 @@ describe('useTimelineActivities', () => {
const useFindManyRecordsMock = jest.requireMock(
'@/object-record/hooks/useFindManyRecords',
);
useFindManyRecordsMock.useFindManyRecords.mockReturnValue({
records: mockedTimelineActivities,
});
const { result } = renderHook(
() => useTimelineActivities(mockTargetableObject),
() => {
return useTimelineActivities(mockTargetableObject);
},
{ wrapper: Wrapper },
);
const wrongMockedTimelineActivities = [
{
...mockedTimelineActivities[0],
name: 'wrong.updated.company',
},
];
expect(result.current.timelineActivities).toEqual(mockedTimelineActivities);
expect(result.current.timelineActivities).not.toEqual(
wrongMockedTimelineActivities,
);
});
});

View File

@ -31,7 +31,17 @@ export const Default: Story = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
await canvas.findByText('Objects');
await canvas.findByText('Name and description');
await canvas.findByText('1. Select a field type');
const searchInput = await canvas.findByPlaceholderText('Search a type');
await userEvent.type(searchInput, 'Num');
const numberTypeButton = await canvas.findByText('Number');
await userEvent.click(numberTypeButton);
await canvas.findByText('2. Configure field');
const employeeInput = await canvas.findByPlaceholderText('Employees');
await userEvent.type(employeeInput, 'Test');
@ -41,7 +51,6 @@ export const Default: Story = {
);
await userEvent.type(descriptionInput, 'Test description');
await canvas.findByText('Type and values');
const saveButton = await canvas.findByText('Save');

View File

@ -1,8 +1,9 @@
import { ReactNode } from 'react';
import { MockedProvider, MockedResponse } from '@apollo/client/testing';
import { ReactNode } from 'react';
import { MutableSnapshot, RecoilRoot } from 'recoil';
import { SnackBarProviderScope } from '@/ui/feedback/snack-bar-manager/scopes/SnackBarProviderScope';
import { JestObjectMetadataItemSetter } from '~/testing/jest/JestObjectMetadataItemSetter';
export const getJestHookWrapper = ({
apolloMocks,
@ -17,7 +18,9 @@ export const getJestHookWrapper = ({
<RecoilRoot initializeState={onInitializeRecoilSnapshot}>
<SnackBarProviderScope snackBarManagerScopeId="snack-bar-manager">
<MockedProvider mocks={apolloMocks} addTypename={false}>
{children}
<JestObjectMetadataItemSetter>
{children}
</JestObjectMetadataItemSetter>
</MockedProvider>
</SnackBarProviderScope>
</RecoilRoot>