refactor: validate objectMetadataItem with Zod on creation and update… (#4270)

* refactor: validate objectMetadataItem with Zod on creation and update & remove logic from useObjectMetadataItemForSettings

* refactor: review
This commit is contained in:
Thaïs
2024-03-05 07:32:30 -03:00
committed by GitHub
parent 0a2d8056bd
commit a9f4a66c4f
20 changed files with 332 additions and 189 deletions

View File

@ -3,14 +3,14 @@ import { MockedProvider } from '@apollo/client/testing';
import { act, renderHook } from '@testing-library/react';
import { RecoilRoot } from 'recoil';
import { useCreateOneObjectRecordMetadataItem } from '@/object-metadata/hooks/useCreateOneObjectMetadataItem';
import { useCreateOneObjectMetadataItem } from '@/object-metadata/hooks/useCreateOneObjectMetadataItem';
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
import {
query,
responseData,
variables,
} from '../__mocks__/useCreateOneObjectRecordMetadataItem';
} from '../__mocks__/useCreateOneObjectMetadataItem';
const mocks = [
{
@ -36,21 +36,19 @@ const Wrapper = ({ children }: { children: ReactNode }) => (
</RecoilRoot>
);
describe('useCreateOneObjectRecordMetadataItem', () => {
describe('useCreateOneObjectMetadataItem', () => {
it('should work as expected', async () => {
const { result } = renderHook(
() => useCreateOneObjectRecordMetadataItem(),
{
wrapper: Wrapper,
},
);
const { result } = renderHook(() => useCreateOneObjectMetadataItem(), {
wrapper: Wrapper,
});
await act(async () => {
const res = await result.current.createOneObjectMetadataItem({
icon: 'IconPlus',
labelPlural: 'View Filters',
labelSingular: 'View Filter',
nameSingular: 'viewFilter',
namePlural: 'viewFilters',
nameSingular: 'viewFilter',
});
expect(res.data).toEqual({ createOneObject: responseData });

View File

@ -103,28 +103,4 @@ describe('useObjectMetadataItemForSettings', () => {
expect(res?.namePlural).toBe('opportunities');
});
});
it('should editObjectMetadataItem', async () => {
const { result } = renderHook(
() => {
const setMetadataItems = useSetRecoilState(objectMetadataItemsState);
setMetadataItems(mockObjectMetadataItems);
return useObjectMetadataItemForSettings();
},
{
wrapper: Wrapper,
},
);
await act(async () => {
const res = await result.current.editObjectMetadataItem({
id: 'idToUpdate',
description: 'newDescription',
labelPlural: 'labelPlural',
labelSingular: 'labelSingular',
});
expect(res.data).toEqual({ updateOneObject: responseData });
});
});
});