apollographql / apollo-client

:rocket:  A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.
https://apollographql.com/client
MIT License
19.34k stars 2.66k forks source link

correctly test for error equality on jest #11937

Closed phryneas closed 2 months ago

phryneas commented 2 months ago

I noticed this when working on tests for subscription errors - jest is extremely lax when comparing errors:

https://github.com/jestjs/jest/blob/c04d13d7abd22e47b0997f6027886aed225c9ce4/packages/expect-utils/src/jasmineUtils.ts#L91-L94

  if (a instanceof Error && b instanceof Error) {
    return a.message == b.message;
  }

This means that we probably have hundreds of assertions that do nothing and might just as well be wrong.

This was the code I used to make it work correctly to work on that one test - I imagine before we can merge this we'll have to adjust dozens of tests (or fix bugs that have been hidden by this).

changeset-bot[bot] commented 2 months ago

🦋 Changeset detected

Latest commit: 35856d6453eac4c4c8761e3ea8f0118dfa8a1afc

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

github-actions[bot] commented 2 months ago

size-limit report 📦

Path Size
dist/apollo-client.min.cjs 39.26 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" 48 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" (production) 45.53 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" 34.38 KB (0%)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" (production) 32.23 KB (0%)
import { ApolloProvider } from "dist/react/index.js" 1.26 KB (0%)
import { ApolloProvider } from "dist/react/index.js" (production) 1.24 KB (0%)
import { useQuery } from "dist/react/index.js" 5.24 KB (0%)
import { useQuery } from "dist/react/index.js" (production) 4.31 KB (0%)
import { useLazyQuery } from "dist/react/index.js" 5.71 KB (0%)
import { useLazyQuery } from "dist/react/index.js" (production) 4.79 KB (0%)
import { useMutation } from "dist/react/index.js" 3.62 KB (0%)
import { useMutation } from "dist/react/index.js" (production) 2.85 KB (0%)
import { useSubscription } from "dist/react/index.js" 4.42 KB (0%)
import { useSubscription } from "dist/react/index.js" (production) 3.46 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" 5.5 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" (production) 4.16 KB (0%)
import { useBackgroundQuery } from "dist/react/index.js" 5 KB (0%)
import { useBackgroundQuery } from "dist/react/index.js" (production) 3.65 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.39 KB (0%)
import { useReadQuery } from "dist/react/index.js" (production) 3.34 KB (0%)
import { useFragment } from "dist/react/index.js" 2.32 KB (0%)
import { useFragment } from "dist/react/index.js" (production) 2.27 KB (0%)
netlify[bot] commented 2 months ago

Deploy Preview for apollo-client-docs ready!

Name Link
Latest commit 35856d6453eac4c4c8761e3ea8f0118dfa8a1afc
Latest deploy log https://app.netlify.com/sites/apollo-client-docs/deploys/668fcb90b0e0c3000762802f
Deploy Preview https://deploy-preview-11937--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.