Fix jest tests broken with apollo metadata client (#4728)
The tests were broken. It turns out that it is not easy to mock two apolloClients as apollo only provides "MockedProvider" component to mock apollo in tests. MockedProvider Api does not allow us to mock on client level. For now, I'm defaulting to the base ApolloClient in test mode to avoid the issue
This commit is contained in:
@ -5,7 +5,6 @@ import { RecoilRoot } from 'recoil';
|
|||||||
|
|
||||||
import { useCreateOneObjectMetadataItem } from '@/object-metadata/hooks/useCreateOneObjectMetadataItem';
|
import { useCreateOneObjectMetadataItem } from '@/object-metadata/hooks/useCreateOneObjectMetadataItem';
|
||||||
|
|
||||||
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
|
|
||||||
import {
|
import {
|
||||||
findManyViewsQuery,
|
findManyViewsQuery,
|
||||||
query,
|
query,
|
||||||
@ -51,9 +50,7 @@ const mocks = [
|
|||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<MockedProvider mocks={mocks} addTypename={false}>
|
<MockedProvider mocks={mocks} addTypename={false}>
|
||||||
<TestApolloMetadataClientProvider>
|
{children}
|
||||||
{children}
|
|
||||||
</TestApolloMetadataClientProvider>
|
|
||||||
</MockedProvider>
|
</MockedProvider>
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import { RecoilRoot } from 'recoil';
|
|||||||
import { useCreateOneRelationMetadataItem } from '@/object-metadata/hooks/useCreateOneRelationMetadataItem';
|
import { useCreateOneRelationMetadataItem } from '@/object-metadata/hooks/useCreateOneRelationMetadataItem';
|
||||||
import { RelationMetadataType } from '~/generated/graphql';
|
import { RelationMetadataType } from '~/generated/graphql';
|
||||||
|
|
||||||
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
|
|
||||||
import {
|
import {
|
||||||
query,
|
query,
|
||||||
responseData,
|
responseData,
|
||||||
@ -30,9 +29,7 @@ const mocks = [
|
|||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<MockedProvider mocks={mocks} addTypename={false}>
|
<MockedProvider mocks={mocks} addTypename={false}>
|
||||||
<TestApolloMetadataClientProvider>
|
{children}
|
||||||
{children}
|
|
||||||
</TestApolloMetadataClientProvider>
|
|
||||||
</MockedProvider>
|
</MockedProvider>
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import { RecoilRoot } from 'recoil';
|
|||||||
|
|
||||||
import { useDeleteOneObjectMetadataItem } from '@/object-metadata/hooks/useDeleteOneObjectMetadataItem';
|
import { useDeleteOneObjectMetadataItem } from '@/object-metadata/hooks/useDeleteOneObjectMetadataItem';
|
||||||
|
|
||||||
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
|
|
||||||
import {
|
import {
|
||||||
query,
|
query,
|
||||||
responseData,
|
responseData,
|
||||||
@ -29,9 +28,7 @@ const mocks = [
|
|||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<MockedProvider mocks={mocks} addTypename={false}>
|
<MockedProvider mocks={mocks} addTypename={false}>
|
||||||
<TestApolloMetadataClientProvider>
|
{children}
|
||||||
{children}
|
|
||||||
</TestApolloMetadataClientProvider>
|
|
||||||
</MockedProvider>
|
</MockedProvider>
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import { useFieldMetadataItem } from '@/object-metadata/hooks/useFieldMetadataIt
|
|||||||
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
|
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
|
||||||
import { FieldMetadataType } from '~/generated/graphql';
|
import { FieldMetadataType } from '~/generated/graphql';
|
||||||
|
|
||||||
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
|
|
||||||
import {
|
import {
|
||||||
objectMetadataId,
|
objectMetadataId,
|
||||||
queries,
|
queries,
|
||||||
@ -85,9 +84,7 @@ const mocks = [
|
|||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<MockedProvider mocks={mocks} addTypename={false}>
|
<MockedProvider mocks={mocks} addTypename={false}>
|
||||||
<TestApolloMetadataClientProvider>
|
{children}
|
||||||
{children}
|
|
||||||
</TestApolloMetadataClientProvider>
|
|
||||||
</MockedProvider>
|
</MockedProvider>
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import { RecoilRoot } from 'recoil';
|
|||||||
import { useFindManyObjectMetadataItems } from '@/object-metadata/hooks/useFindManyObjectMetadataItems';
|
import { useFindManyObjectMetadataItems } from '@/object-metadata/hooks/useFindManyObjectMetadataItems';
|
||||||
import { SnackBarProviderScope } from '@/ui/feedback/snack-bar-manager/scopes/SnackBarProviderScope';
|
import { SnackBarProviderScope } from '@/ui/feedback/snack-bar-manager/scopes/SnackBarProviderScope';
|
||||||
|
|
||||||
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
|
|
||||||
import {
|
import {
|
||||||
query,
|
query,
|
||||||
responseData,
|
responseData,
|
||||||
@ -30,11 +29,9 @@ const mocks = [
|
|||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<MockedProvider mocks={mocks} addTypename={false}>
|
<MockedProvider mocks={mocks} addTypename={false}>
|
||||||
<TestApolloMetadataClientProvider>
|
<SnackBarProviderScope snackBarManagerScopeId="snack-bar-manager">
|
||||||
<SnackBarProviderScope snackBarManagerScopeId="snack-bar-manager">
|
{children}
|
||||||
{children}
|
</SnackBarProviderScope>
|
||||||
</SnackBarProviderScope>
|
|
||||||
</TestApolloMetadataClientProvider>
|
|
||||||
</MockedProvider>
|
</MockedProvider>
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -7,15 +7,9 @@ import { useGetRelationMetadata } from '@/object-metadata/hooks/useGetRelationMe
|
|||||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||||
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
|
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
|
||||||
|
|
||||||
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
|
|
||||||
|
|
||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<MockedProvider addTypename={false}>
|
<MockedProvider addTypename={false}>{children}</MockedProvider>
|
||||||
<TestApolloMetadataClientProvider>
|
|
||||||
{children}
|
|
||||||
</TestApolloMetadataClientProvider>
|
|
||||||
</MockedProvider>
|
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -5,15 +5,9 @@ import { RecoilRoot } from 'recoil';
|
|||||||
|
|
||||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||||
|
|
||||||
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
|
|
||||||
|
|
||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<MockedProvider addTypename={false}>
|
<MockedProvider addTypename={false}>{children}</MockedProvider>
|
||||||
<TestApolloMetadataClientProvider>
|
|
||||||
{children}
|
|
||||||
</TestApolloMetadataClientProvider>
|
|
||||||
</MockedProvider>
|
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -12,8 +12,6 @@ import { useObjectMetadataItemForSettings } from '@/object-metadata/hooks/useObj
|
|||||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||||
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
|
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
|
||||||
|
|
||||||
import { TestApolloMetadataClientProvider } from '../__mocks__/ApolloMetadataClientProvider';
|
|
||||||
|
|
||||||
const mocks = [
|
const mocks = [
|
||||||
{
|
{
|
||||||
request: {
|
request: {
|
||||||
@ -31,9 +29,7 @@ const mocks = [
|
|||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<MockedProvider mocks={mocks} addTypename={false}>
|
<MockedProvider mocks={mocks} addTypename={false}>
|
||||||
<TestApolloMetadataClientProvider>
|
{children}
|
||||||
{children}
|
|
||||||
</TestApolloMetadataClientProvider>
|
|
||||||
</MockedProvider>
|
</MockedProvider>
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,9 +1,15 @@
|
|||||||
import { useContext } from 'react';
|
import { useContext } from 'react';
|
||||||
|
import { useApolloClient } from '@apollo/client';
|
||||||
|
|
||||||
import { ApolloMetadataClientContext } from '../context/ApolloClientMetadataContext';
|
import { ApolloMetadataClientContext } from '../context/ApolloClientMetadataContext';
|
||||||
|
|
||||||
export const useApolloMetadataClient = () => {
|
export const useApolloMetadataClient = () => {
|
||||||
const apolloMetadataClient = useContext(ApolloMetadataClientContext);
|
const apolloMetadataClient = useContext(ApolloMetadataClientContext);
|
||||||
|
const apolloClient = useApolloClient();
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'test') {
|
||||||
|
return apolloClient;
|
||||||
|
}
|
||||||
|
|
||||||
return apolloMetadataClient;
|
return apolloMetadataClient;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user