-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lint error for createTestClient
#4724
Comments
Have also encountered this issue with It looks like adjusting the typing of |
(There is one minor advantage that I'd suggest as a "workaround" you just stop using import { createTestClient } from 'apollo-server-testing';
const { query } = createTestClient(server);
query({ query: SOME_QUERY }); with server.executeOperation({query: SOME_QUERY}); (If SOME_QUERY was a literal Let me know if this isn't an acceptable alternative and it may feed into the plans described above! |
Remove "apollo-server-testing" based on the comments at apollographql/apollo-server#4724
Thank you for the explanation and the instructions, the suggested approach works well for me. Looking forward to the upcoming updates! 👍 |
The `apollo-server-testing` package exports one small function which is just a tiny wrapper around `server.executeOperation`. The one main advantage it provides is that you can pass in operations as ASTs rather than only as strings. This extra layer doesn't add much value but does require us to update things in two places (which cross a package barrier and thus can be installed at skewed versions). So for example when adding the second argument to `executeOperation` in #4166 I did not bother to add it to `apollo-server-testing` too. We've also found that users have been confused by the `createTestClient` API (eg #5111) and that some linters get confused by the unbound methods it returns (#4724). So the simplest thing is to just teach people how to use the real `ApolloServer` method instead of an unrelated API. This PR allows you to pass an AST to `server.executeOperation` (just like with the `apollo-server-testing` API), and changes the docs to recommend `executeOperation` instead of `apollo-server-testing`. It also makes some other suggestions about how to test Apollo Server code in a more end-to-end fashion, and adds some basic tests for `executeOperation`. Fixes #4952.
The `apollo-server-testing` package exports one small function which is just a tiny wrapper around `server.executeOperation`. The one main advantage it provides is that you can pass in operations as ASTs rather than only as strings. This extra layer doesn't add much value but does require us to update things in two places (which cross a package barrier and thus can be installed at skewed versions). So for example when adding the second argument to `executeOperation` in #4166 I did not bother to add it to `apollo-server-testing` too. We've also found that users have been confused by the `createTestClient` API (eg #5111) and that some linters get confused by the unbound methods it returns (#4724). So the simplest thing is to just teach people how to use the real `ApolloServer` method instead of an unrelated API. This PR allows you to pass an AST to `server.executeOperation` (just like with the `apollo-server-testing` API), and changes the docs to recommend `executeOperation` instead of `apollo-server-testing`. It also makes some other suggestions about how to test Apollo Server code in a more end-to-end fashion, and adds some basic tests for `executeOperation`. Fixes #4952.
Hello 👋
Using the
createTestClient
method upsets our linting ruleeslint@typescript-eslint/unbound-method
, documented hereLooking at the implementation, I suspect it has to do with
const executeOperation = server.executeOperation.bind(server);
on line 31"apollo-server-testing": "2.19.0"
The expected behavior
No warnings
The actual behavior
Warning
The text was updated successfully, but these errors were encountered: