You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We were just on 2.2.10 where it was working fine, and now seeing a type error on the resolverCb callback:
Type 'Promise<StrictResponse<JsonBodyType>>' is not assignable to type 'AsyncResponseResolverReturnType<ResponseBodyType>'.
Type 'Promise<StrictResponse<JsonBodyType>>' is not assignable to type 'Promise<ResponseResolverReturnType<ResponseBodyType> | Generator<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<...>, MaybeAsyncResponseResolverReturnType<...>>>'.
Type 'StrictResponse<JsonBodyType>' is not assignable to type 'ResponseResolverReturnType<ResponseBodyType> | Generator<MaybeAsyncResponseResolverReturnType<ResponseBodyType>, MaybeAsyncResponseResolverReturnType<...>, MaybeAsyncResponseResolverReturnType<...>>'.
Type 'StrictResponse<JsonBodyType>' is not assignable to type '[ResponseBodyType] extends [undefined] ? Response : StrictResponse<ResponseBodyType>'.ts(2345)
For context, the helper is called like so:
mockApi<MyRequestType>({
server,
method: "post",
endpoint: "foo",
resolverCb: async ({ request }) => {
// working type inference on request as MyRequestType
},
});
Any insight is appreciated, thanks!
The text was updated successfully, but these errors were encountered:
joeldotsh
changed the title
Issues with types after recent upgrade
Issue with response resolver types after recent upgrade
Apr 1, 2024
I'm seeing a similar error with the latest version. I'm mocking all graphql operations against a schema as defined in the docs: https://mswjs.io/docs/recipes/mock-graphql-schema , but that exact code snippet doesn't pass the typescript check. The error is :
Argument of type '({ query, variables }: ResponseResolverInfo<GraphQLResolverExtras<GraphQLVariables>, null>) => Promise<StrictResponse<JsonBodyType>>' is not assignable to parameter of type 'ResponseResolver<GraphQLResolverExtras<GraphQLVariables>, null, GraphQLResponseBody<GraphQLQuery>>'.
Type 'Promise<StrictResponse<JsonBodyType>>' is not assignable to type 'AsyncResponseResolverReturnType<GraphQLResponseBody<GraphQLQuery>>'.
Type 'Promise<StrictResponse<JsonBodyType>>' is not assignable to type 'Promise<ResponseResolverReturnType<GraphQLResponseBody<GraphQLQuery>> | Generator<MaybeAsyncResponseResolverReturnType<GraphQLResponseBody<GraphQLQuery>>, MaybeAsyncResponseResolverReturnType<...>, MaybeAsyncResponseResolverReturnType<...>>>'.
Type 'StrictResponse<JsonBodyType>' is not assignable to type 'ResponseResolverReturnType<GraphQLResponseBody<GraphQLQuery>> | Generator<MaybeAsyncResponseResolverReturnType<GraphQLResponseBody<GraphQLQuery>>, MaybeAsyncResponseResolverReturnType<...>, MaybeAsyncResponseResolverReturnType<...>>'.
Type 'StrictResponse<JsonBodyType>' is not assignable to type 'StrictResponse<GraphQLResponseBody<GraphQLQuery>>'.
Type 'JsonBodyType' is not assignable to type 'GraphQLResponseBody<GraphQLQuery>'.
Type 'string' has no properties in common with type 'GraphQLResponseBody<GraphQLQuery>'
Update: I was able to fix the type errors by adjusting http[method]<PathParams, RequestBodyType, ResponseBodyType>(...) to http[method]<PathParams, RequestBodyType, JsonBodyType>(...). I guess the issue came down to trying to return HttpResponse.json(response, { status, });, which has a type of JsonBodyType that was incompatible with DefaultBodyType
Not sure if this is totally right, but in terms of how I'm using this (wanting type inference working via mockApi<MyRequestType>(...)), it does the trick
Hi,
Love MSW thanks for all your hard work!
I'm struggling with types and hoping there's a simple tweak here.
We have a light abstraction over
server.use
for usage in our tests:We were just on 2.2.10 where it was working fine, and now seeing a type error on the
resolverCb
callback:For context, the helper is called like so:
Any insight is appreciated, thanks!
The text was updated successfully, but these errors were encountered: