From dd5a7854d845cbb58c71223cd565580e2f01a489 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Jul 2026 01:39:12 +0900 Subject: [PATCH] test(vue-query/{usePrefetchQuery,usePrefetchInfiniteQuery}): assert exact prefetch options instead of 'objectContaining' --- .../usePrefetchInfiniteQuery.test.ts | 63 ++++++++++--------- .../src/__tests__/usePrefetchQuery.test.ts | 28 ++++----- 2 files changed, 49 insertions(+), 42 deletions(-) diff --git a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts index 477abc148be..2456fa9e62e 100644 --- a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts +++ b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts @@ -19,9 +19,9 @@ describe('usePrefetchInfiniteQuery', () => { queryClient, 'prefetchInfiniteQuery', ) - const queryFn = vi.fn(() => - Promise.resolve({ data: 'prefetched', currentPage: 1 }), - ) + const queryFn = () => + Promise.resolve({ data: 'prefetched', currentPage: 1 }) + const getNextPageParam = () => undefined const key = queryKey() @@ -30,7 +30,7 @@ describe('usePrefetchInfiniteQuery', () => { queryKey: key, queryFn, initialPageParam: 1, - getNextPageParam: () => undefined, + getNextPageParam, }, queryClient, ) @@ -40,7 +40,7 @@ describe('usePrefetchInfiniteQuery', () => { queryKey: key, queryFn, initialPageParam: 1, - getNextPageParam: expect.any(Function), + getNextPageParam, }) }) @@ -50,9 +50,8 @@ describe('usePrefetchInfiniteQuery', () => { queryClient, 'prefetchInfiniteQuery', ) - const queryFn = vi.fn(() => - Promise.resolve({ data: 'prefetched', currentPage: 1 }), - ) + const queryFn = () => + Promise.resolve({ data: 'prefetched', currentPage: 1 }) const key = queryKey() queryClient.setQueryData(key, { @@ -81,22 +80,26 @@ describe('usePrefetchInfiniteQuery', () => { ) const nestedRef = ref('value') const key = queryKey() + const queryFn = () => + Promise.resolve({ data: 'prefetched', currentPage: 1 }) + const getNextPageParam = () => undefined usePrefetchInfiniteQuery( { queryKey: [...key, nestedRef], - queryFn: () => Promise.resolve({ data: 'prefetched', currentPage: 1 }), + queryFn, initialPageParam: 1, - getNextPageParam: () => undefined, + getNextPageParam, }, queryClient, ) - expect(prefetchInfiniteQuerySpy).toHaveBeenCalledWith( - expect.objectContaining({ - queryKey: [...key, 'value'], - }), - ) + expect(prefetchInfiniteQuerySpy).toHaveBeenCalledWith({ + queryKey: [...key, 'value'], + queryFn, + initialPageParam: 1, + getNextPageParam, + }) }) it('should prefetch infinite query again when query key changes reactively', async () => { @@ -107,33 +110,37 @@ describe('usePrefetchInfiniteQuery', () => { ) const keyRef = ref('first') const key = queryKey() + const queryFn = () => + Promise.resolve({ data: keyRef.value, currentPage: 1 }) + const getNextPageParam = () => undefined usePrefetchInfiniteQuery( () => ({ queryKey: [...key, keyRef.value], - queryFn: () => Promise.resolve({ data: keyRef.value, currentPage: 1 }), + queryFn, initialPageParam: 1, - getNextPageParam: () => undefined, + getNextPageParam, }), queryClient, ) - expect(prefetchInfiniteQuerySpy).toHaveBeenCalledTimes(1) - expect(prefetchInfiniteQuerySpy).toHaveBeenLastCalledWith( - expect.objectContaining({ - queryKey: [...key, 'first'], - }), - ) + expect(prefetchInfiniteQuerySpy).toHaveBeenNthCalledWith(1, { + queryKey: [...key, 'first'], + queryFn, + initialPageParam: 1, + getNextPageParam, + }) keyRef.value = 'second' await nextTick() expect(prefetchInfiniteQuerySpy).toHaveBeenCalledTimes(2) - expect(prefetchInfiniteQuerySpy).toHaveBeenLastCalledWith( - expect.objectContaining({ - queryKey: [...key, 'second'], - }), - ) + expect(prefetchInfiniteQuerySpy).toHaveBeenNthCalledWith(2, { + queryKey: [...key, 'second'], + queryFn, + initialPageParam: 1, + getNextPageParam, + }) }) it('should warn when used outside of setup function in development mode', () => { diff --git a/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts b/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts index 88b31026289..4cfcf832c4f 100644 --- a/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts +++ b/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts @@ -16,7 +16,7 @@ describe('usePrefetchQuery', () => { it('should prefetch query if query state does not exist', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') - const queryFn = vi.fn(() => Promise.resolve('prefetched')) + const queryFn = () => Promise.resolve('prefetched') const key = queryKey() usePrefetchQuery( @@ -37,7 +37,7 @@ describe('usePrefetchQuery', () => { it('should not prefetch query if query state exists', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') - const queryFn = vi.fn(() => Promise.resolve('prefetched')) + const queryFn = () => Promise.resolve('prefetched') const key = queryKey() queryClient.setQueryData(key, 'existing') @@ -57,20 +57,20 @@ describe('usePrefetchQuery', () => { const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const nestedRef = ref('value') const key = queryKey() + const queryFn = () => Promise.resolve('prefetched') usePrefetchQuery( { queryKey: [...key, nestedRef], - queryFn: () => Promise.resolve('prefetched'), + queryFn, }, queryClient, ) - expect(prefetchQuerySpy).toHaveBeenCalledWith( - expect.objectContaining({ - queryKey: [...key, 'value'], - }), - ) + expect(prefetchQuerySpy).toHaveBeenCalledWith({ + queryKey: [...key, 'value'], + queryFn, + }) }) it('should prefetch again when query key changes reactively', async () => { @@ -78,28 +78,28 @@ describe('usePrefetchQuery', () => { const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const keyRef = ref('first') const key = queryKey() + const queryFn = () => Promise.resolve(keyRef.value) usePrefetchQuery( () => ({ queryKey: [...key, keyRef.value], - queryFn: () => Promise.resolve(keyRef.value), + queryFn, }), queryClient, ) - expect(prefetchQuerySpy).toHaveBeenCalledTimes(1) - expect(prefetchQuerySpy).toHaveBeenLastCalledWith({ + expect(prefetchQuerySpy).toHaveBeenNthCalledWith(1, { queryKey: [...key, 'first'], - queryFn: expect.any(Function), + queryFn, }) keyRef.value = 'second' await nextTick() expect(prefetchQuerySpy).toHaveBeenCalledTimes(2) - expect(prefetchQuerySpy).toHaveBeenLastCalledWith({ + expect(prefetchQuerySpy).toHaveBeenNthCalledWith(2, { queryKey: [...key, 'second'], - queryFn: expect.any(Function), + queryFn, }) })