Skip to content

Commit 19c8906

Browse files
chore: resolve act warnings in tests (#1809)
1 parent 95c9df3 commit 19c8906

File tree

3 files changed

+23
-13
lines changed

3 files changed

+23
-13
lines changed

src/__tests__/react-native-animated.test.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,28 +43,29 @@ describe('AnimatedView', () => {
4343
jest.useRealTimers();
4444
});
4545

46-
it('should use native driver when useNativeDriver is true', () => {
46+
it('should use native driver when useNativeDriver is true', async () => {
4747
render(
4848
<AnimatedView fadeInDuration={250} useNativeDriver={true}>
4949
Test
5050
</AnimatedView>,
5151
);
5252
expect(screen.root).toHaveStyle({ opacity: 0 });
5353

54-
act(() => jest.advanceTimersByTime(250));
55-
// This stopped working in tests in RN 0.77
56-
// expect(screen.root).toHaveStyle({ opacity: 0 });
54+
// eslint-disable-next-line require-await
55+
await act(async () => jest.advanceTimersByTime(250));
56+
expect(screen.root).toHaveStyle({ opacity: 0 });
5757
});
5858

59-
it('should not use native driver when useNativeDriver is false', () => {
59+
it('should not use native driver when useNativeDriver is false', async () => {
6060
render(
6161
<AnimatedView fadeInDuration={250} useNativeDriver={false}>
6262
Test
6363
</AnimatedView>,
6464
);
6565
expect(screen.root).toHaveStyle({ opacity: 0 });
6666

67-
act(() => jest.advanceTimersByTime(250));
67+
// eslint-disable-next-line require-await
68+
await act(async () => jest.advanceTimersByTime(250));
6869
expect(screen.root).toHaveStyle({ opacity: 1 });
6970
});
7071
});

src/__tests__/render-hook-async.test.tsx

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -216,19 +216,25 @@ test('handles custom hooks with complex logic', async () => {
216216
return { count, increment, decrement, reset };
217217
}
218218

219-
const { result, rerenderAsync } = await renderHookAsync(useCounter, { initialProps: 5 });
219+
const { result } = await renderHookAsync(useCounter, { initialProps: 5 });
220220
expect(result.current.count).toBe(5);
221221

222-
result.current.increment();
223-
await rerenderAsync(5);
222+
// eslint-disable-next-line require-await
223+
await act(async () => {
224+
result.current.increment();
225+
});
224226
expect(result.current.count).toBe(6);
225227

226-
result.current.reset();
227-
await rerenderAsync(5);
228+
// eslint-disable-next-line require-await
229+
await act(async () => {
230+
result.current.reset();
231+
});
228232
expect(result.current.count).toBe(5);
229233

230-
result.current.decrement();
231-
await rerenderAsync(5);
234+
// eslint-disable-next-line require-await
235+
await act(async () => {
236+
result.current.decrement();
237+
});
232238
expect(result.current.count).toBe(4);
233239
});
234240

src/user-event/scroll/__tests__/scroll-to-flat-list.test.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,7 @@ test('scrollTo with contentSize and layoutMeasurement update FlatList content',
113113
expect(screen.getByText('Item 0')).toBeOnTheScreen();
114114
expect(screen.getByText('Item 7')).toBeOnTheScreen();
115115
expect(screen.getByText('Item 15')).toBeOnTheScreen();
116+
117+
// Prevent act warning by unmounting the component
118+
await screen.unmountAsync();
116119
});

0 commit comments

Comments
 (0)