File tree 2 files changed +41
-1
lines changed
2 files changed +41
-1
lines changed Original file line number Diff line number Diff line change @@ -382,6 +382,46 @@ describe('useSuspenseQuery', () => {
382
382
await waitFor ( ( ) => rendered . getByText ( 'fetching: false' ) )
383
383
} )
384
384
385
+ it ( 'should set staleTime when having passed a function' , async ( ) => {
386
+ const key = queryKey ( )
387
+ let count = 0
388
+
389
+ function Component ( ) {
390
+ const result = useSuspenseQuery ( {
391
+ queryKey : key ,
392
+ queryFn : async ( ) => {
393
+ await sleep ( 5 )
394
+ count ++
395
+ return count
396
+ } ,
397
+ staleTime : ( ) => 60 * 1000 ,
398
+ } )
399
+ return (
400
+ < div >
401
+ < span > data: { result . data } </ span >
402
+ </ div >
403
+ )
404
+ }
405
+
406
+ function Page ( ) {
407
+ return (
408
+ < React . Suspense fallback = "Loading..." >
409
+ < Component />
410
+ </ React . Suspense >
411
+ )
412
+ }
413
+
414
+ const rendered = renderWithClient ( queryClient , < Page /> )
415
+
416
+ await waitFor ( ( ) => rendered . getByText ( 'Loading...' ) )
417
+ await waitFor ( ( ) => rendered . getByText ( 'data: 1' ) )
418
+
419
+ expect (
420
+ typeof queryClient . getQueryCache ( ) . find ( { queryKey : key } ) ?. observers [ 0 ]
421
+ ?. options . staleTime ,
422
+ ) . toBe ( 'function' )
423
+ } )
424
+
385
425
it ( 'should suspend when switching to a new query' , async ( ) => {
386
426
const key1 = queryKey ( )
387
427
const key2 = queryKey ( )
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ export const ensureSuspenseTimers = (
24
24
if ( defaultedOptions . suspense ) {
25
25
// Always set stale time when using suspense to prevent
26
26
// fetching again when directly mounting after suspending
27
- if ( typeof defaultedOptions . staleTime !== 'number' ) {
27
+ if ( defaultedOptions . staleTime === undefined ) {
28
28
defaultedOptions . staleTime = 1000
29
29
}
30
30
if ( typeof defaultedOptions . gcTime === 'number' ) {
You can’t perform that action at this time.
0 commit comments