/* eslint-disable @typescript-eslint/no-explicit-any */ import { ApolloServer } from 'apollo-server-express' import { GraphQLResponse } from 'apollo-server-types' import { DocumentNode } from 'graphql' import { Nullable } from '@/modules/shared/helpers/typeHelper' type TypedGraphqlResponse> = GraphQLResponse & { data: Nullable } /** * Use this to execute GQL operations from tests against an Apollo instance and get * a properly typed response */ export async function executeOperation< R extends Record = Record, V extends Record = Record >( apollo: ApolloServer, query: DocumentNode, variables?: V ): Promise> { return (await apollo.executeOperation({ query, variables })) as TypedGraphqlResponse }