@@ -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