Skip to content
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

Remove @nonreactive directives from queries passed to MockLink #11845

Merged
merged 13 commits into from
May 14, 2024

Conversation

jerelmiller
Copy link
Member

Fixes #11781

When using queries with the @nonreactive directive, they don't match mocks in MockLink since the client will strip these directives in core before it makes it to the link chain. This means there is a mismatch in the query string when MockLink tries to figure out which mock should be used.

We are already stripping @client and @connection directives in MockLink, but @nonreactive was missing. This change ensures we treat it the same way so that mocks can properly match.

@jerelmiller jerelmiller requested review from phryneas and alessbell May 13, 2024 21:43
Copy link

changeset-bot bot commented May 13, 2024

🦋 Changeset detected

Latest commit: 1e48c56

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@apollo/client Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

github-actions bot commented May 13, 2024

size-limit report 📦

Path Size
dist/apollo-client.min.cjs 38.65 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" 47.42 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" (production) 44.99 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" 34.2 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" (production) 32.06 KB (0%)
import { ApolloProvider } from "dist/react/index.js" 1.23 KB (0%)
import { ApolloProvider } from "dist/react/index.js" (production) 1.22 KB (0%)
import { useQuery } from "dist/react/index.js" 5.28 KB (0%)
import { useQuery } from "dist/react/index.js" (production) 4.36 KB (0%)
import { useLazyQuery } from "dist/react/index.js" 5.52 KB (0%)
import { useLazyQuery } from "dist/react/index.js" (production) 4.59 KB (0%)
import { useMutation } from "dist/react/index.js" 3.52 KB (0%)
import { useMutation } from "dist/react/index.js" (production) 2.74 KB (0%)
import { useSubscription } from "dist/react/index.js" 3.21 KB (0%)
import { useSubscription } from "dist/react/index.js" (production) 2.4 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" 5.44 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" (production) 4.1 KB (0%)
import { useBackgroundQuery } from "dist/react/index.js" 4.96 KB (0%)
import { useBackgroundQuery } from "dist/react/index.js" (production) 3.61 KB (0%)
import { useLoadableQuery } from "dist/react/index.js" 5.07 KB (0%)
import { useLoadableQuery } from "dist/react/index.js" (production) 3.72 KB (0%)
import { useReadQuery } from "dist/react/index.js" 3.33 KB (0%)
import { useReadQuery } from "dist/react/index.js" (production) 3.27 KB (0%)
import { useFragment } from "dist/react/index.js" 2.29 KB (0%)
import { useFragment } from "dist/react/index.js" (production) 2.23 KB (0%)

Copy link

netlify bot commented May 13, 2024

Deploy Preview for apollo-client-docs ready!

Name Link
🔨 Latest commit afb2167
🔍 Latest deploy log https://app.netlify.com/sites/apollo-client-docs/deploys/66428978ecd866000831e73f
😎 Deploy Preview https://deploy-preview-11845--apollo-client-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

netlify bot commented May 13, 2024

Deploy Preview for apollo-client-docs ready!

Name Link
🔨 Latest commit 1e48c56
🔍 Latest deploy log https://app.netlify.com/sites/apollo-client-docs/deploys/66439585380ae40008c42091
😎 Deploy Preview https://deploy-preview-11845--apollo-client-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.


{
using spy = spyOnConsole("warn");
const stream = new ObservableStream(execute(link, { query }));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bit weird to me, because this would never be called like that in AC. Can you give me some insights into the intent here please?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For these tests, I'm just trying to "prove" that the removal of the directives happen, so if we execute a query that matches the original (i.e. it still contains the directive), it won't match, hence this check.

What here is weird to you? Are you referring to the execute call here? Or something else?

@github-actions github-actions bot added the auto-cleanup 🤖 label May 14, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MockLink doesn't work with @nonreactive directive.
2 participants