From b010a1522e8a00ab83eb613e2efe467e74c58756 Mon Sep 17 00:00:00 2001 From: Paul Venable Date: Wed, 4 May 2022 10:36:31 -0700 Subject: [PATCH] Support Query and QueryVariables type arguments in mockGraphQLQuery and mockGraphQLMutation (#5274) Co-authored-by: Aditya Pandey --- packages/testing/src/web/mockRequests.ts | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) 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)