@@ -6,6 +6,7 @@ import { sleep } from '../utils'
6
6
import BaseExample from './BaseExample.svelte'
7
7
import DisabledExample from './DisabledExample.svelte'
8
8
import PlaceholderData from './PlaceholderData.svelte'
9
+ import RefetchExample from './RefetchExample.svelte'
9
10
import type { Writable } from 'svelte/store'
10
11
import type { QueryObserverResult } from '@tanstack/query-core'
11
12
@@ -387,4 +388,34 @@ describe('createQuery', () => {
387
388
isSuccess : false ,
388
389
} )
389
390
} )
391
+
392
+ test ( 'Create a new query when refetching a removed query' , async ( ) => {
393
+ const statesStore : Writable < Array < QueryObserverResult > > = writable ( [ ] )
394
+
395
+ const rendered = render ( RefetchExample , {
396
+ props : {
397
+ states : statesStore ,
398
+ } ,
399
+ } )
400
+
401
+ await waitFor ( ( ) => rendered . getByText ( 'Data: 1' ) )
402
+ fireEvent . click ( rendered . getByRole ( 'button' , { name : / R e m o v e / i } ) )
403
+
404
+ await sleep ( 5 )
405
+
406
+ fireEvent . click ( rendered . getByRole ( 'button' , { name : / R e f e t c h / i } ) )
407
+ await waitFor ( ( ) => rendered . getByText ( 'Data: 2' ) )
408
+
409
+ const states = get ( statesStore )
410
+
411
+ expect ( states . length ) . toBe ( 4 )
412
+ // Initial
413
+ expect ( states [ 0 ] ) . toMatchObject ( { data : undefined , dataUpdatedAt : 0 } )
414
+ // Fetched
415
+ expect ( states [ 1 ] ) . toMatchObject ( { data : 1 } )
416
+ // Switch
417
+ expect ( states [ 2 ] ) . toMatchObject ( { data : undefined , dataUpdatedAt : 0 } )
418
+ // Fetched
419
+ expect ( states [ 3 ] ) . toMatchObject ( { data : 2 } )
420
+ } )
390
421
} )
0 commit comments