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

fix nextFetchPolicy behaviour with transformed documents #11235

Merged
merged 6 commits into from
Sep 28, 2023
Merged

Conversation

phryneas
Copy link
Member

@phryneas phryneas commented Sep 21, 2023

Fixes #11234

I adjusted existing tests to catch possible regressions.

Checklist:

  • If this PR contains changes to the library itself (not necessary for e.g. docs updates), please include a changeset (see CONTRIBUTING.md)
  • If this PR is a new feature, please reference an issue where a consensus about the design was reached (not necessary for small changes)
  • Make sure all of the significant new logic is covered by tests

@changeset-bot
Copy link

changeset-bot bot commented Sep 21, 2023

🦋 Changeset detected

Latest commit: 5c86019

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

@phryneas
Copy link
Member Author

/release:pr

@github-actions
Copy link
Contributor

A new release has been made for this PR. You can install it with npm i @apollo/[email protected].

@github-actions
Copy link
Contributor

github-actions bot commented Sep 21, 2023

size-limit report 📦

Path Size
dist/apollo-client.min.cjs 37.08 KB (-0.06% 🔽)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" 43.42 KB (-0.05% 🔽)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" (production) 41.97 KB (-0.04% 🔽)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" 32.5 KB (-0.07% 🔽)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" (production) 31.26 KB (-0.04% 🔽)
import { ApolloProvider } from "dist/react/index.js" 1.21 KB (0%)
import { ApolloProvider } from "dist/react/index.js" (production) 1.2 KB (0%)
import { useQuery } from "dist/react/index.js" 4.27 KB (0%)
import { useQuery } from "dist/react/index.js" (production) 4.08 KB (0%)
import { useLazyQuery } from "dist/react/index.js" 4.58 KB (0%)
import { useLazyQuery } from "dist/react/index.js" (production) 4.4 KB (0%)
import { useMutation } from "dist/react/index.js" 2.52 KB (0%)
import { useMutation } from "dist/react/index.js" (production) 2.51 KB (0%)
import { useSubscription } from "dist/react/index.js" 2.24 KB (0%)
import { useSubscription } from "dist/react/index.js" (production) 2.2 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" 4.59 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" (production) 4.02 KB (0%)
import { useBackgroundQuery } from "dist/react/index.js" 4.1 KB (0%)
import { useBackgroundQuery } from "dist/react/index.js" (production) 3.52 KB (0%)
import { useReadQuery } from "dist/react/index.js" 2.96 KB (0%)
import { useReadQuery } from "dist/react/index.js" (production) 2.91 KB (0%)
import { useFragment } from "dist/react/index.js" 2.08 KB (0%)
import { useFragment } from "dist/react/index.js" (production) 2.03 KB (0%)

@netlify
Copy link

netlify bot commented Sep 21, 2023

Deploy Preview for apollo-client-docs ready!

Name Link
🔨 Latest commit fd08de1
🔍 Latest deploy log https://app.netlify.com/sites/apollo-client-docs/deploys/650d6d5cdf257a0008ccc48e
😎 Deploy Preview https://deploy-preview-11235--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.

Comment on lines 829 to 835
query EchoQuery {
linkCounter
opName
opVars
echo {
linkCounter
opName
opVars
}
}
Copy link
Member Author

Choose a reason for hiding this comment

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

Previously, this test did not trigger any query transformation and did not surface this bug.
The additional nesting results in a __typename being inserted - and as a result, this test would fail without the fix in this PR.

Comment on lines -888 to -889
const fetchOptions =
query === options.query ? options : { ...options, query };
Copy link
Member Author

Choose a reason for hiding this comment

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

All tests did take the query === options.query path here, so this didn't surface.

@phryneas phryneas requested review from alessbell and jerelmiller and removed request for alessbell September 22, 2023 10:32
@phryneas phryneas self-assigned this Sep 22, 2023
@phryneas phryneas marked this pull request as ready for review September 22, 2023 10:33
@phryneas phryneas changed the title keep options reference stable when passing it through QueryManager fix nextFetchPolicy behaviour with transformed documents Sep 22, 2023
Copy link
Member

@jerelmiller jerelmiller left a comment

Choose a reason for hiding this comment

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

Great find on this one! Thanks for fixing 🎉

@phryneas phryneas merged commit 6cddaaf into main Sep 28, 2023
8 checks passed
@phryneas phryneas deleted the pr/fix-11234 branch September 28, 2023 16:39
@github-actions github-actions bot mentioned this pull request Sep 28, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Has anything changed with optimisticResponse in > 3.8
3 participants