Removing the wrapper Promise in useMutation to enable apollo client stubs #199
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ohi there,
So, can i ask a favour? I support this apollo mocking library called graphql-mock, which we use quite a bit in our work. It's sort like
nock
but for apollo. We're trying to migrate from vanillareact-apollo
to your amazingreact-apollo-hooks
, but we've run into a bit of a problem withuseMutation
, which i hope we could address here.Basically the way
graphql-mock
works is that it provides a mock apollo client which resolves queries and mutations immediately, so we could write tests without messing with async await. Here is an example https://github.com/MadRabbit/graphql-mock/blob/master/docs/mutations.mdThe problem is though
react-apollo-hooks
wrapsclient.mutate
queries in a newPromise
wrapper, which prevents us from getting those immediate renders.The funny thing is that
client.mutate
already returns aPromise
, so if we shuffle things a little bit as in this PR, we both can get what we want. Your code will still work the same as before, and we can mess with theclient
methods unobstructed