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

feat: deep merge resolvers #11760

Merged
merged 21 commits into from
Apr 15, 2024
Merged

Conversation

alessbell
Copy link
Member

@alessbell alessbell commented Apr 5, 2024

Closes #11758.

Copy link

changeset-bot bot commented Apr 5, 2024

🦋 Changeset detected

Latest commit: c6eaea4

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 Minor

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 Apr 5, 2024

size-limit report 📦

Path Size
dist/apollo-client.min.cjs 38.61 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" 46.49 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" (production) 44.04 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" 34.16 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" (production) 32.04 KB (0%)
import { ApolloProvider } from "dist/react/index.js" 1.24 KB (0%)
import { ApolloProvider } from "dist/react/index.js" (production) 1.22 KB (0%)
import { useQuery } from "dist/react/index.js" 5.27 KB (0%)
import { useQuery } from "dist/react/index.js" (production) 4.35 KB (0%)
import { useLazyQuery } from "dist/react/index.js" 5.51 KB (0%)
import { useLazyQuery } from "dist/react/index.js" (production) 4.58 KB (0%)
import { useMutation } from "dist/react/index.js" 3.51 KB (0%)
import { useMutation } from "dist/react/index.js" (production) 2.73 KB (0%)
import { useSubscription } from "dist/react/index.js" 3.19 KB (0%)
import { useSubscription } from "dist/react/index.js" (production) 2.38 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" 5.44 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" (production) 4.11 KB (0%)
import { useBackgroundQuery } from "dist/react/index.js" 4.92 KB (0%)
import { useBackgroundQuery } from "dist/react/index.js" (production) 3.58 KB (0%)
import { useLoadableQuery } from "dist/react/index.js" 5.03 KB (0%)
import { useLoadableQuery } from "dist/react/index.js" (production) 3.69 KB (0%)
import { useReadQuery } from "dist/react/index.js" 3.32 KB (0%)
import { useReadQuery } from "dist/react/index.js" (production) 3.26 KB (0%)
import { useFragment } from "dist/react/index.js" 2.29 KB (0%)
import { useFragment } from "dist/react/index.js" (production) 2.24 KB (0%)

Copy link

netlify bot commented Apr 5, 2024

Deploy Preview for apollo-client-docs ready!

Name Link
🔨 Latest commit 5d6a069
🔍 Latest deploy log https://app.netlify.com/sites/apollo-client-docs/deploys/66102c996552f70008f905bb
😎 Deploy Preview https://deploy-preview-11760--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 Apr 5, 2024

Deploy Preview for apollo-client-docs ready!

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

@alessbell alessbell changed the title feat: deep merge resolvers by default feat: deep merge resolvers Apr 10, 2024
@alessbell alessbell marked this pull request as ready for review April 10, 2024 13:15
@alessbell alessbell requested a review from phryneas April 10, 2024 13:24
@alessbell alessbell linked an issue Apr 10, 2024 that may be closed by this pull request
@alessbell
Copy link
Member Author

NB: src/link/persisted-queries/__tests__/persisted-queries.test.ts failed on CI but when I run it locally it passes. Smells like a CI flake so I'll try rerunning it.

@alessbell
Copy link
Member Author

Very curious that this test is consistently failing on CI (not locally) given the changes in this PR... haven't had a chance to dig deeper here.

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.

Deep merging FTW! I love this!

I had a couple minor nits regarding the profiler, and one comment regarding the structure of the reset test, but otherwise looks good!

src/testing/core/__tests__/createTestSchema.test.tsx Outdated Show resolved Hide resolved
src/testing/core/__tests__/createTestSchema.test.tsx Outdated Show resolved Hide resolved
src/testing/core/__tests__/createTestSchema.test.tsx Outdated Show resolved Hide resolved
src/testing/core/__tests__/createTestSchema.test.tsx Outdated Show resolved Hide resolved
src/testing/core/__tests__/createTestSchema.test.tsx Outdated Show resolved Hide resolved
src/testing/core/__tests__/createTestSchema.test.tsx Outdated Show resolved Hide resolved
src/testing/core/__tests__/createTestSchema.test.tsx Outdated Show resolved Hide resolved
},
},
});
it("setup test where we add resolvers to schema", async () => {
Copy link
Member

Choose a reason for hiding this comment

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

While I totally understand why you setup these tests this way, I'm not super fond that these tests require a specific order in that this one needs to run before the other one to pass. Rather than separate it blocks, I'd advocate for combining them into a single bigger test that demonstrates that calling .add, then .reset will successfully reset back to the original resolvers.

I think all I'd add in the component setup for your tests is a <button > that calls refetch on the useSuspenseQuery that you can use to retrigger the network requests.

Thoughts?

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated in 0d49273

cc'ing @phryneas again here because the final test is failing with Exceeded timeout waiting for next render. I've brought over the profiler fix from the other PR, and haven't been able to debug this yet...

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.

🎉 awesome awesome stuff!

@github-actions github-actions bot added the auto-cleanup 🤖 label Apr 15, 2024
@alessbell alessbell merged commit acd1982 into release-3.10 Apr 15, 2024
37 checks passed
@github-actions github-actions bot mentioned this pull request Apr 15, 2024
@alessbell alessbell deleted the issue-11758-merging-resolvers branch April 15, 2024 23:08
@github-actions github-actions bot mentioned this pull request Apr 24, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Testing utilities] Support merging resolvers
3 participants