diff --git a/packages/testing/src/web/mockRequests.ts b/packages/testing/src/web/mockRequests.ts index c3036296e4d2..dfb076d1e9fd 100644 --- a/packages/testing/src/web/mockRequests.ts +++ b/packages/testing/src/web/mockRequests.ts @@ -67,8 +67,11 @@ export const registerHandler = (handler: RequestHandler) => { } } -export type DataFunction = ( - variables: Record, +export type DataFunction< + Query extends Record = Record, + QueryVariables = Record +> = ( + variables: QueryVariables, { req, ctx, @@ -76,7 +79,7 @@ export type DataFunction = ( req: GraphQLRequest ctx: GraphQLContext> } -) => Record | void +) => Query | void // These should get exported from MSW type ResponseFunction = ( @@ -144,17 +147,23 @@ const mockGraphQL = ( return data } -export const mockGraphQLQuery = ( +export const mockGraphQLQuery = < + Query extends Record = Record, + QueryVariables = Record +>( operation: string, - data: DataFunction | Record, + data: DataFunction | Query, responseEnhancer?: ResponseEnhancer ) => { return mockGraphQL('query', operation, data, responseEnhancer) } -export const mockGraphQLMutation = ( +export const mockGraphQLMutation = < + Query extends Record = Record, + QueryVariables = Record +>( operation: string, - data: DataFunction | Record, + data: DataFunction | Query, responseEnhancer?: ResponseEnhancer ) => { return mockGraphQL('mutation', operation, data, responseEnhancer)