@@ -75,10 +75,12 @@ describe("useQuery's in Suspense mode", () => {
75
75
</ QueryClientProvider >
76
76
) )
77
77
78
- await vi . waitFor ( ( ) => rendered . getByText ( 'data: 1' ) )
79
- fireEvent . click ( rendered . getByLabelText ( 'toggle' ) )
78
+ await vi . advanceTimersByTimeAsync ( 10 )
79
+ expect ( rendered . getByText ( 'data: 1' ) ) . toBeInTheDocument ( )
80
80
81
- await vi . waitFor ( ( ) => rendered . getByText ( 'data: 2' ) )
81
+ fireEvent . click ( rendered . getByLabelText ( 'toggle' ) )
82
+ await vi . advanceTimersByTimeAsync ( 10 )
83
+ expect ( rendered . getByText ( 'data: 2' ) ) . toBeInTheDocument ( )
82
84
83
85
expect ( renders ) . toBe ( 4 )
84
86
expect ( states . length ) . toBe ( 4 )
@@ -123,8 +125,8 @@ describe("useQuery's in Suspense mode", () => {
123
125
</ QueryClientProvider >
124
126
) )
125
127
126
- await vi . waitFor ( ( ) => rendered . getByText ( 'data: 1' ) )
127
-
128
+ await vi . advanceTimersByTimeAsync ( 10 )
129
+ expect ( rendered . getByText ( 'data: 1' ) ) . toBeInTheDocument ( )
128
130
// eslint-disable-next-line cspell/spellchecker
129
131
// TODO(lukemurray): in react this is 1 in solid this is 2 because suspense
130
132
// occurs on read.
@@ -135,8 +137,8 @@ describe("useQuery's in Suspense mode", () => {
135
137
} )
136
138
137
139
fireEvent . click ( rendered . getByText ( 'next' ) )
138
- await vi . waitFor ( ( ) => rendered . getByText ( 'data: 2' ) )
139
-
140
+ await vi . advanceTimersByTimeAsync ( 10 )
141
+ expect ( rendered . getByText ( 'data: 2' ) ) . toBeInTheDocument ( )
140
142
// eslint-disable-next-line cspell/spellchecker
141
143
// TODO(lukemurray): in react this is 2 and in solid it is 4
142
144
expect ( states . length ) . toBe ( 4 )
@@ -169,7 +171,8 @@ describe("useQuery's in Suspense mode", () => {
169
171
</ QueryClientProvider >
170
172
) )
171
173
172
- await vi . waitFor ( ( ) => rendered . getByText ( 'rendered' ) )
174
+ await vi . advanceTimersByTimeAsync ( 10 )
175
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
173
176
174
177
expect ( queryFn ) . toHaveBeenCalledTimes ( 1 )
175
178
} )
@@ -213,13 +216,14 @@ describe("useQuery's in Suspense mode", () => {
213
216
expect ( queryCache . find ( { queryKey : key } ) ) . toBeFalsy ( )
214
217
215
218
fireEvent . click ( rendered . getByLabelText ( 'toggle' ) )
216
- await vi . waitFor ( ( ) => rendered . getByText ( 'rendered' ) )
219
+ await vi . advanceTimersByTimeAsync ( 10 )
220
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
217
221
218
222
expect ( queryCache . find ( { queryKey : key } ) ?. getObserversCount ( ) ) . toBe ( 1 )
219
223
220
224
fireEvent . click ( rendered . getByLabelText ( 'toggle' ) )
221
-
222
225
expect ( rendered . queryByText ( 'rendered' ) ) . toBeNull ( )
226
+
223
227
expect ( queryCache . find ( { queryKey : key } ) ?. getObserversCount ( ) ) . toBe ( 0 )
224
228
} )
225
229
@@ -276,23 +280,14 @@ describe("useQuery's in Suspense mode", () => {
276
280
</ QueryClientProvider >
277
281
) )
278
282
279
- await vi . waitFor ( ( ) =>
280
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
281
- )
282
-
283
- await vi . waitFor ( ( ) =>
284
- expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( ) ,
285
- )
286
-
287
- await vi . waitFor ( ( ) =>
288
- expect ( rendered . getByText ( 'retry' ) ) . toBeInTheDocument ( ) ,
289
- )
283
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
284
+ await vi . advanceTimersByTimeAsync ( 100 )
285
+ expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( )
286
+ expect ( rendered . getByText ( 'retry' ) ) . toBeInTheDocument ( )
290
287
291
288
fireEvent . click ( rendered . getByText ( 'retry' ) )
292
-
293
- await vi . waitFor ( ( ) =>
294
- expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( ) ,
295
- )
289
+ await vi . advanceTimersByTimeAsync ( 10 )
290
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
296
291
} )
297
292
298
293
it ( 'should retry fetch if the reset error boundary has been reset' , async ( ) => {
@@ -346,27 +341,21 @@ describe("useQuery's in Suspense mode", () => {
346
341
</ QueryClientProvider >
347
342
) )
348
343
349
- await vi . waitFor ( ( ) =>
350
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
351
- )
352
- await vi . waitFor ( ( ) =>
353
- expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( ) ,
354
- )
355
- await vi . waitFor ( ( ) =>
356
- expect ( rendered . getByText ( 'retry' ) ) . toBeInTheDocument ( ) ,
357
- )
344
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
345
+ await vi . advanceTimersByTimeAsync ( 10 )
346
+ expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( )
347
+ expect ( rendered . getByText ( 'retry' ) ) . toBeInTheDocument ( )
348
+
358
349
fireEvent . click ( rendered . getByText ( 'retry' ) )
359
- await vi . waitFor ( ( ) =>
360
- expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( ) ,
361
- )
362
- await vi . waitFor ( ( ) =>
363
- expect ( rendered . getByText ( 'retry' ) ) . toBeInTheDocument ( ) ,
364
- )
350
+ await vi . advanceTimersByTimeAsync ( 10 )
351
+ expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( )
352
+ expect ( rendered . getByText ( 'retry' ) ) . toBeInTheDocument ( )
353
+
365
354
succeed = true
355
+
366
356
fireEvent . click ( rendered . getByText ( 'retry' ) )
367
- await vi . waitFor ( ( ) =>
368
- expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( ) ,
369
- )
357
+ await vi . advanceTimersByTimeAsync ( 10 )
358
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
370
359
} )
371
360
372
361
it ( 'should refetch when re-mounting' , async ( ) => {
@@ -416,32 +405,22 @@ describe("useQuery's in Suspense mode", () => {
416
405
</ QueryClientProvider >
417
406
) )
418
407
419
- await vi . waitFor ( ( ) =>
420
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
421
- )
422
- await vi . waitFor ( ( ) =>
423
- expect ( rendered . getByText ( 'data: 1' ) ) . toBeInTheDocument ( ) ,
424
- )
425
- await vi . waitFor ( ( ) =>
426
- expect ( rendered . getByText ( 'fetching: false' ) ) . toBeInTheDocument ( ) ,
427
- )
428
- await vi . waitFor ( ( ) =>
429
- expect ( rendered . getByText ( 'hide' ) ) . toBeInTheDocument ( ) ,
430
- )
408
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
409
+ await vi . advanceTimersByTimeAsync ( 100 )
410
+ expect ( rendered . getByText ( 'data: 1' ) ) . toBeInTheDocument ( )
411
+ expect ( rendered . getByText ( 'fetching: false' ) ) . toBeInTheDocument ( )
412
+ expect ( rendered . getByText ( 'hide' ) ) . toBeInTheDocument ( )
413
+
431
414
fireEvent . click ( rendered . getByText ( 'hide' ) )
432
- await vi . waitFor ( ( ) =>
433
- expect ( rendered . getByText ( 'show' ) ) . toBeInTheDocument ( ) ,
434
- )
415
+ await vi . advanceTimersByTimeAsync ( 100 )
416
+ expect ( rendered . getByText ( 'show' ) ) . toBeInTheDocument ( )
417
+
435
418
fireEvent . click ( rendered . getByText ( 'show' ) )
436
- await vi . waitFor ( ( ) =>
437
- expect ( rendered . getByText ( 'fetching: true' ) ) . toBeInTheDocument ( ) ,
438
- )
439
- await vi . waitFor ( ( ) =>
440
- expect ( rendered . getByText ( 'data: 2' ) ) . toBeInTheDocument ( ) ,
441
- )
442
- await vi . waitFor ( ( ) =>
443
- expect ( rendered . getByText ( 'fetching: false' ) ) . toBeInTheDocument ( ) ,
444
- )
419
+ await vi . advanceTimersByTimeAsync ( 0 )
420
+ expect ( rendered . getByText ( 'fetching: true' ) ) . toBeInTheDocument ( )
421
+ await vi . advanceTimersByTimeAsync ( 100 )
422
+ expect ( rendered . getByText ( 'data: 2' ) ) . toBeInTheDocument ( )
423
+ expect ( rendered . getByText ( 'fetching: false' ) ) . toBeInTheDocument ( )
445
424
} )
446
425
447
426
it ( 'should suspend when switching to a new query' , async ( ) => {
@@ -485,19 +464,14 @@ describe("useQuery's in Suspense mode", () => {
485
464
</ QueryClientProvider >
486
465
) )
487
466
488
- await vi . waitFor ( ( ) =>
489
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
490
- )
491
- await vi . waitFor ( ( ) =>
492
- expect ( rendered . getByText ( `data: ${ key1 } ` ) ) . toBeInTheDocument ( ) ,
493
- )
467
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
468
+ await vi . advanceTimersByTimeAsync ( 100 )
469
+ expect ( rendered . getByText ( `data: ${ key1 } ` ) ) . toBeInTheDocument ( )
470
+
494
471
fireEvent . click ( rendered . getByText ( 'switch' ) )
495
- await vi . waitFor ( ( ) =>
496
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
497
- )
498
- await vi . waitFor ( ( ) =>
499
- expect ( rendered . getByText ( `data: ${ key2 } ` ) ) . toBeInTheDocument ( ) ,
500
- )
472
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
473
+ await vi . advanceTimersByTimeAsync ( 100 )
474
+ expect ( rendered . getByText ( `data: ${ key2 } ` ) ) . toBeInTheDocument ( )
501
475
} )
502
476
503
477
it ( 'should throw errors to the error boundary by default' , async ( ) => {
@@ -548,12 +522,9 @@ describe("useQuery's in Suspense mode", () => {
548
522
</ QueryClientProvider >
549
523
) )
550
524
551
- await vi . waitFor ( ( ) =>
552
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
553
- )
554
- await vi . waitFor ( ( ) =>
555
- expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( ) ,
556
- )
525
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
526
+ await vi . advanceTimersByTimeAsync ( 10 )
527
+ expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( )
557
528
558
529
consoleMock . mockRestore ( )
559
530
} )
@@ -602,12 +573,9 @@ describe("useQuery's in Suspense mode", () => {
602
573
</ QueryClientProvider >
603
574
) )
604
575
605
- await vi . waitFor ( ( ) =>
606
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
607
- )
608
- await vi . waitFor ( ( ) =>
609
- expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( ) ,
610
- )
576
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
577
+ await vi . advanceTimersByTimeAsync ( 10 )
578
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
611
579
} )
612
580
613
581
it ( 'should throw errors to the error boundary when a throwOnError function returns true' , async ( ) => {
@@ -658,12 +626,9 @@ describe("useQuery's in Suspense mode", () => {
658
626
</ QueryClientProvider >
659
627
) )
660
628
661
- await vi . waitFor ( ( ) =>
662
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
663
- )
664
- await vi . waitFor ( ( ) =>
665
- expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( ) ,
666
- )
629
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
630
+ await vi . advanceTimersByTimeAsync ( 10 )
631
+ expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( )
667
632
668
633
consoleMock . mockRestore ( )
669
634
} )
@@ -714,12 +679,9 @@ describe("useQuery's in Suspense mode", () => {
714
679
</ QueryClientProvider >
715
680
) )
716
681
717
- await vi . waitFor ( ( ) =>
718
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
719
- )
720
- await vi . waitFor ( ( ) =>
721
- expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( ) ,
722
- )
682
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
683
+ await vi . advanceTimersByTimeAsync ( 10 )
684
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
723
685
} )
724
686
725
687
it ( 'should not call the queryFn when not enabled' , async ( ) => {
@@ -757,13 +719,11 @@ describe("useQuery's in Suspense mode", () => {
757
719
) )
758
720
759
721
expect ( queryFn ) . toHaveBeenCalledTimes ( 0 )
760
- await vi . advanceTimersByTimeAsync ( 5 )
761
- fireEvent . click ( rendered . getByRole ( 'button' , { name : / f i r e / i } ) )
762
-
763
- await vi . waitFor ( ( ) => {
764
- expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( '23' )
765
- } )
766
722
723
+ await vi . advanceTimersByTimeAsync ( 10 )
724
+ fireEvent . click ( rendered . getByRole ( 'button' , { name : / f i r e / i } ) )
725
+ await vi . advanceTimersByTimeAsync ( 10 )
726
+ expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( '23' )
767
727
expect ( queryFn ) . toHaveBeenCalledTimes ( 1 )
768
728
} )
769
729
@@ -824,22 +784,19 @@ describe("useQuery's in Suspense mode", () => {
824
784
) )
825
785
826
786
// render suspense fallback (Loading...)
827
- await vi . waitFor ( ( ) =>
828
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
829
- )
787
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
830
788
// resolve promise -> render Page (rendered)
831
- await vi . waitFor ( ( ) =>
832
- expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( ) ,
833
- )
789
+ await vi . advanceTimersByTimeAsync ( 10 )
790
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
834
791
835
792
// change query key
836
793
succeed = false
837
794
// reset query -> and throw error
795
+
838
796
fireEvent . click ( rendered . getByLabelText ( 'fail' ) )
839
797
// render error boundary fallback (error boundary)
840
- await vi . waitFor ( ( ) =>
841
- expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( ) ,
842
- )
798
+ await vi . advanceTimersByTimeAsync ( 10 )
799
+ expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( )
843
800
844
801
consoleMock . mockRestore ( )
845
802
} )
@@ -894,22 +851,19 @@ describe("useQuery's in Suspense mode", () => {
894
851
) )
895
852
896
853
// render suspense fallback (Loading...)
897
- await vi . waitFor ( ( ) =>
898
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
899
- )
854
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
900
855
// resolve promise -> render Page (rendered)
901
- await vi . waitFor ( ( ) =>
902
- expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( ) ,
903
- )
856
+ await vi . advanceTimersByTimeAsync ( 10 )
857
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
904
858
905
859
// change promise result to error
906
860
succeed = false
907
861
// change query key
862
+
908
863
fireEvent . click ( rendered . getByLabelText ( 'fail' ) )
909
864
// render error boundary fallback (error boundary)
910
- await vi . waitFor ( ( ) =>
911
- expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( ) ,
912
- )
865
+ await vi . advanceTimersByTimeAsync ( 10 )
866
+ expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( )
913
867
914
868
consoleMock . mockRestore ( )
915
869
} )
@@ -966,22 +920,16 @@ describe("useQuery's in Suspense mode", () => {
966
920
) )
967
921
968
922
// render empty data with 'rendered' when enabled is false
969
- await vi . waitFor ( ( ) =>
970
- expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( ) ,
971
- )
923
+ await vi . advanceTimersByTimeAsync ( 10 )
924
+ expect ( rendered . getByText ( 'rendered' ) ) . toBeInTheDocument ( )
972
925
973
926
// change enabled to true
974
927
fireEvent . click ( rendered . getByLabelText ( 'fail' ) )
975
-
976
928
// render pending fallback
977
- await vi . waitFor ( ( ) =>
978
- expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( ) ,
979
- )
980
-
929
+ expect ( rendered . getByText ( 'Loading...' ) ) . toBeInTheDocument ( )
981
930
// render error boundary fallback (error boundary)
982
- await vi . waitFor ( ( ) =>
983
- expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( ) ,
984
- )
931
+ await vi . advanceTimersByTimeAsync ( 10 )
932
+ expect ( rendered . getByText ( 'error boundary' ) ) . toBeInTheDocument ( )
985
933
986
934
consoleMock . mockRestore ( )
987
935
} )
@@ -1025,13 +973,11 @@ describe("useQuery's in Suspense mode", () => {
1025
973
</ QueryClientProvider >
1026
974
) )
1027
975
1028
- await vi . waitFor ( ( ) =>
1029
- expect ( state ) . toMatchObject ( {
1030
- data : 1 ,
1031
- status : 'success' ,
1032
- } ) ,
1033
- )
1034
-
976
+ await vi . advanceTimersByTimeAsync ( 10 )
977
+ expect ( state ) . toMatchObject ( {
978
+ data : 1 ,
979
+ status : 'success' ,
980
+ } )
1035
981
expect ( renders ) . toBe ( 2 )
1036
982
expect ( rendered . queryByText ( 'rendered' ) ) . not . toBeNull ( )
1037
983
} )
0 commit comments