Skip to content

Commit f93eb7f

Browse files
test: wait for block-change invalidation before asserting
After rerender(newBlock), the useEffect that invalidates queries fires asynchronously. Wait for isFetchingAny to become truthy (invalidation triggered a refetch) before waiting for it to become falsy (refetch complete with fresh data).
1 parent 71cf3fc commit f93eb7f

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

packages/simulation-sdk-wagmi/test/handlers/blue/accrueInterest.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ describe("Blue_AccrueInterest", () => {
7373
});
7474

7575
await rerender(await client.getBlock());
76+
// Wait for useEffect block-change invalidation to trigger refetch, then for completion.
77+
await waitFor(() => expect(result.current.isFetchingAny).toBeTruthy(), {
78+
timeout: 5000,
79+
}).catch(() => {});
7680
await waitFor(() => expect(result.current.isFetchingAny).toBeFalsy());
7781

7882
expect(result.current.data).toStrictEqual(getLast(steps));

packages/simulation-sdk-wagmi/test/handlers/metamorpho/deposit.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ describe("MetaMorpho_AccrueInterest", () => {
9292
});
9393

9494
await rerender(await client.getBlock());
95+
// Wait for useEffect block-change invalidation to trigger refetch, then for completion.
96+
await waitFor(() => expect(result.current.isFetchingAny).toBeTruthy(), {
97+
timeout: 5000,
98+
}).catch(() => {});
9599
await waitFor(() => expect(result.current.isFetchingAny).toBeFalsy());
96100

97101
expect(result.current.data).toStrictEqual(getLast(steps));

packages/simulation-sdk-wagmi/test/handlers/metamorpho/publicReallocate.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ describe("MetaMorpho_PublicReallocate", () => {
139139
});
140140

141141
await rerender(await client.getBlock());
142+
// Wait for useEffect block-change invalidation to trigger refetch, then for completion.
143+
await waitFor(() => expect(result.current.isFetchingAny).toBeTruthy(), {
144+
timeout: 5000,
145+
}).catch(() => {});
142146
await waitFor(() => expect(result.current.isFetchingAny).toBeFalsy());
143147

144148
// Hotfix: anvil's effective gas price is not zero for some reason.

packages/simulation-sdk-wagmi/test/hooks/useSimulationState.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,10 @@ describe("useSimulationState", () => {
498498
const step1 = _.cloneDeep(steps[1]!);
499499

500500
await rerender(await client.getBlock());
501+
// Wait for useEffect block-change invalidation to trigger refetch, then for completion.
502+
await waitFor(() => expect(result.current.isFetchingAny).toBeTruthy(), {
503+
timeout: 5000,
504+
}).catch(() => {});
501505
await waitFor(() => expect(result.current.isFetchingAny).toBeFalsy());
502506

503507
step1.block.number += 1n;
@@ -519,6 +523,10 @@ describe("useSimulationState", () => {
519523
const step2 = _.cloneDeep(steps[2]!);
520524

521525
await rerender(await client.getBlock());
526+
// Wait for useEffect block-change invalidation to trigger refetch, then for completion.
527+
await waitFor(() => expect(result.current.isFetchingAny).toBeTruthy(), {
528+
timeout: 5000,
529+
}).catch(() => {});
522530
await waitFor(() => expect(result.current.isFetchingAny).toBeFalsy());
523531

524532
step2.block.number += 2n;

0 commit comments

Comments
 (0)