Skip to content

Commit 2a90a52

Browse files
committed
test(query-core/queryObserver): add tests for 'refetchOnWindowFocus' as a function in 'shouldFetchOnWindowFocus'
1 parent 708d9c5 commit 2a90a52

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

packages/query-core/src/__tests__/queryObserver.test.tsx

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,6 +1337,53 @@ describe('queryObserver', () => {
13371337
expect(observer.shouldFetchOnWindowFocus()).toBe(true)
13381338
})
13391339

1340+
it('should return true from shouldFetchOnWindowFocus when refetchOnWindowFocus is a function returning true', () => {
1341+
const key = queryKey()
1342+
const refetchOnWindowFocus = vi.fn(() => true)
1343+
1344+
const observer = new QueryObserver(queryClient, {
1345+
queryKey: key,
1346+
queryFn: () => 'data',
1347+
refetchOnWindowFocus,
1348+
})
1349+
1350+
expect(observer.shouldFetchOnWindowFocus()).toBe(true)
1351+
expect(refetchOnWindowFocus).toHaveBeenCalledWith(
1352+
queryClient.getQueryCache().find({ queryKey: key }),
1353+
)
1354+
})
1355+
1356+
it('should return false from shouldFetchOnWindowFocus when refetchOnWindowFocus is a function returning false', () => {
1357+
const key = queryKey()
1358+
1359+
const observer = new QueryObserver(queryClient, {
1360+
queryKey: key,
1361+
queryFn: () => 'data',
1362+
refetchOnWindowFocus: () => false,
1363+
})
1364+
1365+
expect(observer.shouldFetchOnWindowFocus()).toBe(false)
1366+
})
1367+
1368+
it('should return true from shouldFetchOnWindowFocus when refetchOnWindowFocus is a function returning "always" even if the query is fresh', async () => {
1369+
const key = queryKey()
1370+
1371+
queryClient.prefetchQuery({
1372+
queryKey: key,
1373+
queryFn: () => sleep(10).then(() => 'data'),
1374+
})
1375+
await vi.advanceTimersByTimeAsync(10)
1376+
1377+
const observer = new QueryObserver(queryClient, {
1378+
queryKey: key,
1379+
queryFn: () => sleep(10).then(() => 'data'),
1380+
staleTime: Infinity,
1381+
refetchOnWindowFocus: () => 'always',
1382+
})
1383+
1384+
expect(observer.shouldFetchOnWindowFocus()).toBe(true)
1385+
})
1386+
13401387
it('should fetch and return optimistic result via fetchOptimistic', async () => {
13411388
const key = queryKey()
13421389
const observer = new QueryObserver(queryClient, {

0 commit comments

Comments
 (0)