From 5b08a719d991a4b06538637f4993def875ff2547 Mon Sep 17 00:00:00 2001 From: zorzysty Date: Wed, 2 Nov 2022 09:02:09 +0100 Subject: [PATCH 1/6] test: stabilize test for selecting a part of the data with select --- packages/react-query/src/__tests__/useQuery.test.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index c21551b2d3..3547c4e15a 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -969,12 +969,15 @@ describe('useQuery', () => { select: (data) => data.name, }) states.push(state) - return null + + return
{state.data}
} - renderWithClient(queryClient, ) + const rendered = renderWithClient(queryClient, ) - await sleep(10) + await waitFor(() => { + rendered.getByText("test") + }) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) From ae30a76c71d03e3159e59750d2c1d09b94f8882f Mon Sep 17 00:00:00 2001 From: zorzysty Date: Wed, 2 Nov 2022 09:48:24 +0100 Subject: [PATCH 2/6] test: stabilize test for resolving promises after reconnect --- packages/query-core/src/tests/query.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/query-core/src/tests/query.test.tsx b/packages/query-core/src/tests/query.test.tsx index 3c3c682e92..9a51f3d758 100644 --- a/packages/query-core/src/tests/query.test.tsx +++ b/packages/query-core/src/tests/query.test.tsx @@ -134,8 +134,8 @@ describe('query', () => { // There should not be a result yet expect(result).toBeUndefined() - // By now we should have a value - await sleep(50) + // Promise should eventually be resolved + await promise expect(result).toBe('data3') }) From 6a8a662342f08f0a9c5176a459de84166e235f3b Mon Sep 17 00:00:00 2001 From: zorzysty Date: Wed, 2 Nov 2022 09:49:21 +0100 Subject: [PATCH 3/6] test: stabilize test for throwing a CancelledError when a paused query is cancelled --- packages/query-core/src/tests/query.test.tsx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/query-core/src/tests/query.test.tsx b/packages/query-core/src/tests/query.test.tsx index 9a51f3d758..92a0bc4d55 100644 --- a/packages/query-core/src/tests/query.test.tsx +++ b/packages/query-core/src/tests/query.test.tsx @@ -174,12 +174,15 @@ describe('query', () => { query.cancel() // Check if the error is set to the cancelled error - await sleep(0) - expect(isCancelledError(result)).toBe(true) - - // Reset visibilityState to original value - visibilityMock.mockRestore() - window.dispatchEvent(new FocusEvent('focus')) + try { + await promise + } catch { + expect(isCancelledError(result)).toBe(true) + } finally { + // Reset visibilityState to original value + visibilityMock.mockRestore() + window.dispatchEvent(new FocusEvent('focus')) + } }) test('should provide context to queryFn', async () => { From 25703bd6b2a4837a2e2576f8078bec2c85c69261 Mon Sep 17 00:00:00 2001 From: zorzysty Date: Wed, 2 Nov 2022 09:53:07 +0100 Subject: [PATCH 4/6] test: stabilize test for selecting a part of the data with select (object syntax) --- packages/react-query/src/__tests__/useQuery.test.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 3547c4e15a..7b5e3c11d0 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -995,12 +995,15 @@ describe('useQuery', () => { select: (data) => data.name, }) states.push(state) - return null + + return
{state.data}
} - renderWithClient(queryClient, ) + const rendered = renderWithClient(queryClient, ) - await sleep(10) + await waitFor(() => { + rendered.getByText("test") + }) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) From 58b4609f5f17eecab76b495b873f3a503a0c38f8 Mon Sep 17 00:00:00 2001 From: zorzysty Date: Wed, 2 Nov 2022 10:11:03 +0100 Subject: [PATCH 5/6] test: stabilize test for cancelling query when there are no more subscriptions --- .../src/__tests__/useInfiniteQuery.test.tsx | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx index d68dd6f3d0..6134cd42d0 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx @@ -2,7 +2,6 @@ import { fireEvent, waitFor } from '@testing-library/react' import * as React from 'react' import { - Blink, createQueryClient, queryKey, renderWithClient, @@ -1725,13 +1724,13 @@ describe('useInfiniteQuery', () => { const promise = new Promise((resolve, reject) => { cancelFn = jest.fn(() => reject('Cancelled')) signal?.addEventListener('abort', cancelFn) - sleep(20).then(() => resolve('OK')) + sleep(1000).then(() => resolve('OK')) }) return promise } - function Page() { + function Inner() { const state = useInfiniteQuery(key, queryFn) return (
@@ -1740,14 +1739,25 @@ describe('useInfiniteQuery', () => { ) } - const rendered = renderWithClient( - queryClient, - - - , - ) + function Page() { + const [isVisible, setIsVisible] = React.useState(true) + + return ( + <> + + {isVisible && } +
{isVisible ? 'visible' : 'hidden'}
+ + ) + } + + const rendered = renderWithClient(queryClient, ) + + await waitFor(() => rendered.getByText('visible')) + + fireEvent.click(rendered.getByRole('button', { name: 'hide' })) - await waitFor(() => rendered.getByText('off')) + await waitFor(() => rendered.getByText('hidden')) expect(cancelFn).toHaveBeenCalled() }) From 0e3d57b8873a2481c9a0b43399165e3490d75dea Mon Sep 17 00:00:00 2001 From: zorzysty Date: Wed, 2 Nov 2022 10:11:29 +0100 Subject: [PATCH 6/6] test: apply formatting --- packages/react-query/src/__tests__/useQuery.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 7b5e3c11d0..e0e4cc1015 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -976,7 +976,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) await waitFor(() => { - rendered.getByText("test") + rendered.getByText('test') }) expect(states.length).toBe(2) @@ -1002,7 +1002,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) await waitFor(() => { - rendered.getByText("test") + rendered.getByText('test') }) expect(states.length).toBe(2)