import { render, screen } from '@testing-library/react' import { afterEach, describe, expect, it, vi } from 'vitest' import { IsFetching } from './IsFetching' const { useIsFetchingMock } = vi.hoisted(() => ({ useIsFetchingMock: vi.fn(() => 0), })) vi.mock('@tanstack/react-query', async () => { const actual = await vi.importActual('@tanstack/react-query') return { ...actual, useIsFetching: useIsFetchingMock, } }) describe('', () => { afterEach(() => { useIsFetchingMock.mockReset() useIsFetchingMock.mockReturnValue(0) }) it('should forward query filters to useIsFetching', () => { useIsFetchingMock.mockReturnValue(7) render( {(isFetching) =>
{isFetching}
}
) expect(useIsFetchingMock).toHaveBeenCalledTimes(1) expect(useIsFetchingMock).toHaveBeenCalledWith({ queryKey: ['todos'] }) expect(screen.getByTestId('is-fetching')).toHaveTextContent('7') }) })