diff --git a/packages/react-query/src/__tests__/useIsFetching.test.tsx b/packages/react-query/src/__tests__/useIsFetching.test.tsx index 4b2ca7e0f6..f2af2d27aa 100644 --- a/packages/react-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/react-query/src/__tests__/useIsFetching.test.tsx @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/react' import * as React from 'react' -import { queryKey } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, useIsFetching, useQuery } from '..' import { renderWithClient, setActTimeout } from './utils' @@ -31,7 +31,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key, queryFn: async () => { - await vi.advanceTimersByTimeAsync(50) + await sleep(50) return 'test' }, enabled: ready, @@ -51,19 +51,15 @@ describe('useIsFetching', () => { const { getByText, getByRole } = renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect(getByText('isFetching: 0')).toBeInTheDocument() - }) + expect(getByText('isFetching: 0')).toBeInTheDocument() fireEvent.click(getByRole('button', { name: /setReady/i })) - await vi.waitFor(() => { - expect(getByText('isFetching: 1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(getByText('isFetching: 1')).toBeInTheDocument() - await vi.waitFor(() => { - expect(getByText('isFetching: 0')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(51) + expect(getByText('isFetching: 0')).toBeInTheDocument() }) it('should not update state while rendering', async () => { @@ -85,7 +81,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key1, queryFn: async () => { - await vi.advanceTimersByTimeAsync(100) + await sleep(100) return 'data' }, }) @@ -96,7 +92,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key2, queryFn: async () => { - await vi.advanceTimersByTimeAsync(100) + await sleep(100) return 'data' }, }) @@ -123,9 +119,8 @@ describe('useIsFetching', () => { renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect(isFetchingArray).toEqual([0, 1, 1, 2, 1, 0]) - }) + await vi.advanceTimersByTimeAsync(151) + expect(isFetchingArray).toEqual([0, 1, 1, 2, 1, 0]) }) it('should be able to filter', async () => { @@ -139,7 +134,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key1, queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return 'test' }, }) @@ -150,7 +145,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key2, queryFn: async () => { - await vi.advanceTimersByTimeAsync(20) + await sleep(20) return 'test' }, }) @@ -177,21 +172,17 @@ describe('useIsFetching', () => { ) } - const { findByText, getByRole } = renderWithClient(queryClient, ) + const { getByText, getByRole } = renderWithClient(queryClient, ) - await vi.waitFor(() => { - findByText('isFetching: 0') - }) + getByText('isFetching: 0') fireEvent.click(getByRole('button', { name: /setStarted/i })) - await vi.waitFor(() => { - findByText('isFetching: 1') - }) + await vi.advanceTimersByTimeAsync(0) + getByText('isFetching: 1') - await vi.waitFor(() => { - findByText('isFetching: 0') - }) + await vi.advanceTimersByTimeAsync(11) + getByText('isFetching: 0') // at no point should we have isFetching: 2 expect(isFetchingArray).toEqual(expect.not.arrayContaining([2])) @@ -205,7 +196,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key, queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return 'test' }, }) @@ -221,13 +212,11 @@ describe('useIsFetching', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() - await vi.waitFor(() => { - expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) it('should use provided custom queryClient', async () => { @@ -239,7 +228,7 @@ describe('useIsFetching', () => { { queryKey: key, queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return 'test' }, }, @@ -257,8 +246,7 @@ describe('useIsFetching', () => { const rendered = render() - await vi.waitFor(() => { - expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() }) })