1- import { beforeEach , describe , expect , it } from 'vitest'
2- import { render } from '@testing-library/angular'
1+ import { afterEach , beforeEach , describe , expect , it , vi } from 'vitest'
32import {
43 Component ,
54 effect ,
65 provideZonelessChangeDetection ,
76} from '@angular/core'
87import { TestBed } from '@angular/core/testing'
9- import { queryKey } from '@tanstack/query-test-utils'
8+ import { render } from '@testing-library/angular'
9+ import { queryKey , sleep } from '@tanstack/query-test-utils'
1010import { QueryClient , provideTanStackQuery } from '..'
1111import { injectQueries } from '../inject-queries'
1212
1313let queryClient : QueryClient
1414
1515beforeEach ( ( ) => {
16+ vi . useFakeTimers ( )
1617 queryClient = new QueryClient ( )
1718 TestBed . configureTestingModule ( {
1819 providers : [
@@ -22,6 +23,10 @@ beforeEach(() => {
2223 } )
2324} )
2425
26+ afterEach ( ( ) => {
27+ vi . useRealTimers ( )
28+ } )
29+
2530describe ( 'injectQueries' , ( ) => {
2631 it ( 'should return the correct states' , async ( ) => {
2732 const key1 = queryKey ( )
@@ -39,37 +44,36 @@ describe('injectQueries', () => {
3944 ` ,
4045 } )
4146 class Page {
42- toString ( val : any ) {
43- return String ( val )
44- }
4547 result = injectQueries ( ( ) => ( {
4648 queries : [
4749 {
4850 queryKey : key1 ,
49- queryFn : async ( ) => {
50- await new Promise ( ( r ) => setTimeout ( r , 10 ) )
51- return 1
52- } ,
51+ queryFn : ( ) => sleep ( 10 ) . then ( ( ) => 1 ) ,
5352 } ,
5453 {
5554 queryKey : key2 ,
56- queryFn : async ( ) => {
57- await new Promise ( ( r ) => setTimeout ( r , 100 ) )
58- return 2
59- } ,
55+ queryFn : ( ) => sleep ( 100 ) . then ( ( ) => 2 ) ,
6056 } ,
6157 ] ,
6258 } ) )
6359
64- _pushResults = effect ( ( ) => {
60+ _ = effect ( ( ) => {
6561 const snapshot = this . result ( ) . map ( ( q ) => ( { data : q . data ( ) } ) )
6662 results . push ( snapshot )
6763 } )
6864 }
6965
70- const rendered = await render ( Page )
66+ const rendered = await render ( Page , {
67+ providers : [
68+ provideZonelessChangeDetection ( ) ,
69+ provideTanStackQuery ( queryClient ) ,
70+ ] ,
71+ } )
72+
73+ await vi . advanceTimersByTimeAsync ( 101 )
74+ rendered . fixture . detectChanges ( )
7175
72- await rendered . findByText ( 'data1: 1, data2: 2' )
76+ expect ( rendered . getByText ( 'data1: 1, data2: 2' ) ) . toBeInTheDocument ( )
7377
7478 expect ( results . length ) . toBe ( 3 )
7579 expect ( results [ 0 ] ) . toMatchObject ( [ { data : undefined } , { data : undefined } ] )
0 commit comments