Skip to content

Commit 82495aa

Browse files
authored
Merge pull request #279 from gadget-inc/pausing-fix
Add the pause option to hook dependencies for hygiene
2 parents ce8d37e + 4f76455 commit 82495aa

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
lines changed

packages/react/spec/useFindFirst.spec.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,4 +182,43 @@ describe("useFindFirst", () => {
182182

183183
expect(mockUrqlClient.executeQuery).toBeCalledTimes(0);
184184
});
185+
186+
test("issues a request once unpaused", async () => {
187+
let paused = true;
188+
const { result, rerender } = renderHook(() => useFindFirst(relatedProductsApi.user, { pause: paused }), {
189+
wrapper: MockClientWrapper(relatedProductsApi),
190+
});
191+
192+
expect(result.current[0].data).toBeFalsy();
193+
expect(result.current[0].fetching).toBe(false);
194+
expect(result.current[0].error).toBeFalsy();
195+
196+
expect(mockUrqlClient.executeQuery).toBeCalledTimes(0);
197+
198+
paused = false;
199+
rerender();
200+
expect(result.current[0].fetching).toBe(true);
201+
202+
expect(mockUrqlClient.executeQuery).toBeCalledTimes(1);
203+
204+
mockUrqlClient.executeQuery.pushResponse("users", {
205+
data: {
206+
users: {
207+
edges: [{ cursor: "123", node: { id: "123", email: "[email protected]" } }],
208+
pageInfo: {
209+
startCursor: "123",
210+
endCursor: "123",
211+
hasNextPage: false,
212+
hasPreviousPage: false,
213+
},
214+
},
215+
},
216+
stale: false,
217+
hasNext: false,
218+
});
219+
220+
expect(result.current[0].data!.id).toEqual("123");
221+
expect(result.current[0].data!.email).toEqual("[email protected]");
222+
expect(result.current[0].fetching).toBe(false);
223+
});
185224
});

packages/react/src/useFindFirst.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export const useFindFirst = <
6969
const error = ErrorWrapper.errorIfDataAbsent(rawResult, dataPath, options?.pause);
7070

7171
return { ...rawResult, data, error };
72-
}, [manager, rawResult]);
72+
}, [manager.findFirst.operationName, options?.pause, rawResult]);
7373

7474
return [result, refresh];
7575
};

packages/react/src/useFindMany.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export const useFindMany = <
6767
const error = ErrorWrapper.errorIfDataAbsent(rawResult, dataPath, options?.pause);
6868

6969
return { ...rawResult, data, error };
70-
}, [manager, rawResult]);
70+
}, [manager, options?.pause, rawResult]);
7171

7272
return [result, refresh];
7373
};

packages/react/src/useFindOne.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export const useFindOne = <
6464
const error = ErrorWrapper.errorIfDataAbsent(rawResult, dataPath, options?.pause);
6565

6666
return { ...rawResult, data, error };
67-
}, [rawResult, manager]);
67+
}, [manager.findOne.operationName, rawResult, options?.pause]);
6868

6969
return [result, refresh];
7070
};

0 commit comments

Comments
 (0)