Skip to content

Commit

Permalink
Rewrite test with renderHookToSnapshotStream and toEqualQueryResult
Browse files Browse the repository at this point in the history
  • Loading branch information
jerelmiller committed Jan 16, 2025
1 parent 475e5b0 commit cf82df9
Showing 1 changed file with 50 additions and 36 deletions.
86 changes: 50 additions & 36 deletions src/react/hooks/__tests__/useQuery.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11140,14 +11140,25 @@ describe("useQuery Hook", () => {
cache: new InMemoryCache(),
});

const { result } = renderHook(() => useQuery(query), {
wrapper: ({ children }) => (
<ApolloProvider client={client}>{children}</ApolloProvider>
),
using _disabledAct = disableActEnvironment();
const { takeSnapshot } = await renderHookToSnapshotStream(
() => useQuery(query),
{
wrapper: ({ children }) => (
<ApolloProvider client={client}>{children}</ApolloProvider>
),
}
);

await expect(takeSnapshot()).resolves.toEqualQueryResult({
data: undefined,
called: true,
loading: true,
networkStatus: NetworkStatus.loading,
previousData: undefined,
variables: {},
});

expect(result.current.loading).toBe(true);
expect(result.current.data).toBe(undefined);
setTimeout(() => {
link.simulateResult({
result: {
Expand All @@ -11162,19 +11173,19 @@ describe("useQuery Hook", () => {
});
});

await waitFor(
() => {
expect(result.current.loading).toBe(false);
},
{ interval: 1 }
);
expect(result.current.data).toEqual({
greeting: {
message: "Hello world",
__typename: "Greeting",
await expect(takeSnapshot()).resolves.toEqualQueryResult({
data: {
greeting: {
message: "Hello world",
__typename: "Greeting",
},
},
called: true,
loading: false,
networkStatus: NetworkStatus.ready,
previousData: undefined,
variables: {},
});
expect(result.current).not.toContain({ hasNext: true });

setTimeout(() => {
link.simulateResult({
Expand All @@ -11196,27 +11207,30 @@ describe("useQuery Hook", () => {
});
});

await waitFor(
() => {
expect(result.current.loading).toBe(false);
},
{ interval: 1 }
);
await waitFor(
() => {
expect(result.current.data).toEqual({
greeting: {
message: "Hello world",
__typename: "Greeting",
recipient: {
name: "Alice",
__typename: "Person",
},
await expect(takeSnapshot()).resolves.toEqualQueryResult({
data: {
greeting: {
message: "Hello world",
__typename: "Greeting",
recipient: {
name: "Alice",
__typename: "Person",
},
});
},
},
{ interval: 1 }
);
called: true,
loading: false,
networkStatus: NetworkStatus.ready,
previousData: {
greeting: {
message: "Hello world",
__typename: "Greeting",
},
},
variables: {},
});

await expect(takeSnapshot).not.toRerender();
});

it("should handle deferred queries in lists", async () => {
Expand Down

0 comments on commit cf82df9

Please sign in to comment.