Remove dead code linked to quick actions (#6587)

Removing dead code, we'll take another approach to build this
This commit is contained in:
Félix Malfait
2024-08-09 11:09:26 +02:00
committed by GitHub
parent a2a5ab488c
commit 7e01843aaf
21 changed files with 33 additions and 655 deletions

View File

@ -1,16 +0,0 @@
import { PERSON_FRAGMENT } from '@/object-record/hooks/__mocks__/personFragment';
import { gql } from '@apollo/client';
export { responseData } from './useUpdateOneRecord';
export const query = gql`
mutation ExecuteQuickActionOnOnePerson($idToExecuteQuickActionOn: ID!) {
executeQuickActionOnPerson(id: $idToExecuteQuickActionOn) {
${PERSON_FRAGMENT}
}
}
`;
export const variables = {
idToExecuteQuickActionOn: 'a7286b9a-c039-4a89-9567-2dfa7953cda9',
};

View File

@ -1,62 +0,0 @@
import { ReactNode } from 'react';
import { MockedProvider } from '@apollo/client/testing';
import { act, renderHook } from '@testing-library/react';
import { RecoilRoot } from 'recoil';
import {
query,
responseData,
variables,
} from '@/object-record/hooks/__mocks__/useExecuteQuickActionOnOneRecord';
import { useExecuteQuickActionOnOneRecord } from '@/object-record/hooks/useExecuteQuickActionOnOneRecord';
const idToExecuteQuickActionOn = 'a7286b9a-c039-4a89-9567-2dfa7953cda9';
const mocks = [
{
request: {
query,
variables,
},
result: jest.fn(() => ({
data: {
executeQuickActionOnPerson: {
...responseData,
id: idToExecuteQuickActionOn,
},
},
})),
},
];
const Wrapper = ({ children }: { children: ReactNode }) => (
<RecoilRoot>
<MockedProvider mocks={mocks} addTypename={false}>
{children}
</MockedProvider>
</RecoilRoot>
);
describe('useExecuteQuickActionOnOneRecord', () => {
it('should work as expected', async () => {
const { result } = renderHook(
() =>
useExecuteQuickActionOnOneRecord({
objectNameSingular: 'person',
}),
{
wrapper: Wrapper,
},
);
await act(async () => {
const res = await result.current.executeQuickActionOnOneRecord(
idToExecuteQuickActionOn,
);
expect(res).toHaveProperty('id', idToExecuteQuickActionOn);
});
expect(mocks[0].result).toHaveBeenCalled();
});
});

View File

@ -1,40 +0,0 @@
import { renderHook } from '@testing-library/react';
import { print } from 'graphql';
import { RecoilRoot } from 'recoil';
import { PERSON_FRAGMENT } from '@/object-record/hooks/__mocks__/personFragment';
import { useExecuteQuickActionOnOneRecordMutation } from '@/object-record/hooks/useExecuteQuickActionOnOneRecordMutation';
const expectedQueryTemplate = `
mutation ExecuteQuickActionOnOnePerson($idToExecuteQuickActionOn: ID!) {
executeQuickActionOnPerson(id: $idToExecuteQuickActionOn) {
${PERSON_FRAGMENT}
}
}
`.replace(/\s/g, '');
describe('useExecuteQuickActionOnOneRecordMutation', () => {
it('should return a valid executeQuickActionOnOneRecordMutation', () => {
const objectNameSingular = 'person';
const { result } = renderHook(
() =>
useExecuteQuickActionOnOneRecordMutation({
objectNameSingular,
}),
{
wrapper: RecoilRoot,
},
);
const { executeQuickActionOnOneRecordMutation } = result.current;
expect(executeQuickActionOnOneRecordMutation).toBeDefined();
const printedReceivedQuery = print(
executeQuickActionOnOneRecordMutation,
).replace(/\s/g, '');
expect(printedReceivedQuery).toEqual(expectedQueryTemplate);
});
});

View File

@ -1,57 +0,0 @@
import { useCallback } from 'react';
import { useApolloClient } from '@apollo/client';
import { getOperationName } from '@apollo/client/utilities';
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
import { useExecuteQuickActionOnOneRecordMutation } from '@/object-record/hooks/useExecuteQuickActionOnOneRecordMutation';
import { useFindManyRecordsQuery } from '@/object-record/hooks/useFindManyRecordsQuery';
import { capitalize } from '~/utils/string/capitalize';
type useExecuteQuickActionOnOneRecordProps = {
objectNameSingular: string;
};
export const useExecuteQuickActionOnOneRecord = <T>({
objectNameSingular,
}: useExecuteQuickActionOnOneRecordProps) => {
const { objectMetadataItem } = useObjectMetadataItem({
objectNameSingular,
});
const { executeQuickActionOnOneRecordMutation } =
useExecuteQuickActionOnOneRecordMutation({
objectNameSingular,
});
const { findManyRecordsQuery } = useFindManyRecordsQuery({
objectNameSingular,
});
const apolloClient = useApolloClient();
const executeQuickActionOnOneRecord = useCallback(
async (idToExecuteQuickActionOn: string) => {
const executeQuickActionOnRecord = await apolloClient.mutate({
mutation: executeQuickActionOnOneRecordMutation,
variables: {
idToExecuteQuickActionOn,
},
refetchQueries: [getOperationName(findManyRecordsQuery) ?? ''],
});
return executeQuickActionOnRecord.data[
`executeQuickActionOn${capitalize(objectMetadataItem.nameSingular)}`
] as T;
},
[
objectMetadataItem.nameSingular,
apolloClient,
executeQuickActionOnOneRecordMutation,
findManyRecordsQuery,
],
);
return {
executeQuickActionOnOneRecord,
};
};

View File

@ -1,53 +0,0 @@
import { gql } from '@apollo/client';
import { useRecoilValue } from 'recoil';
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { mapObjectMetadataToGraphQLQuery } from '@/object-metadata/utils/mapObjectMetadataToGraphQLQuery';
import { EMPTY_MUTATION } from '@/object-record/constants/EmptyMutation';
import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';
import { capitalize } from '~/utils/string/capitalize';
export const getExecuteQuickActionOnOneRecordMutationGraphQLField = ({
objectNameSingular,
}: {
objectNameSingular: string;
}) => {
return `executeQuickActionOn${capitalize(objectNameSingular)}`;
};
export const useExecuteQuickActionOnOneRecordMutation = ({
objectNameSingular,
}: {
objectNameSingular: string;
}) => {
const { objectMetadataItem } = useObjectMetadataItem({
objectNameSingular,
});
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
if (isUndefinedOrNull(objectMetadataItem)) {
return { executeQuickActionOnOneRecordMutation: EMPTY_MUTATION };
}
const capitalizedObjectName = capitalize(objectMetadataItem.nameSingular);
const graphQLFieldForExecuteQuickActionOnOneRecordMutation =
getExecuteQuickActionOnOneRecordMutationGraphQLField({
objectNameSingular: objectMetadataItem.nameSingular,
});
const executeQuickActionOnOneRecordMutation = gql`
mutation ExecuteQuickActionOnOne${capitalizedObjectName}($idToExecuteQuickActionOn: ID!) {
${graphQLFieldForExecuteQuickActionOnOneRecordMutation}(id: $idToExecuteQuickActionOn) ${mapObjectMetadataToGraphQLQuery(
{
objectMetadataItems,
objectMetadataItem,
},
)}
}
`;
return { executeQuickActionOnOneRecordMutation };
};