1
- import { afterAll , beforeAll , describe , expect , it , } from 'vitest'
2
- import * as React from 'react'
3
1
import {
4
2
createRenderStream ,
5
- disableActEnvironment ,
6
- useTrackRenders ,
3
+ useTrackRenders
7
4
} from '@testing-library/react-render-stream'
5
+ import * as React from 'react'
6
+ import { afterAll , beforeAll , describe , expect , it , } from 'vitest'
8
7
import { QueryClientProvider , useQuery } from '..'
9
8
import { QueryCache } from '../index'
10
9
import { createQueryClient , queryKey , sleep } from './utils'
11
10
12
- let disableActReturn : ReturnType < typeof disableActEnvironment >
13
- beforeAll ( ( ) => {
14
- disableActReturn = disableActEnvironment ( )
15
- } )
16
- afterAll ( ( ) => {
17
- disableActReturn . cleanup ( )
18
- } )
19
-
20
11
21
12
describe ( 'react transitions' , ( ) => {
22
13
const queryCache = new QueryCache ( )
@@ -110,7 +101,7 @@ describe('react transitions', () => {
110
101
return { promise, resolve : resolve ! , reject : reject ! }
111
102
}
112
103
113
- it . only ( 'should handle parallel queries with shared parent key in transition' , async ( ) => {
104
+ it . only ( 'should handle parallel queries with shared parent key in transition' , { repeats : 10 } , async ( ) => {
114
105
const renderStream = createRenderStream ( { snapshotDOM : true } )
115
106
116
107
let deferredA = createDeferred < void > ( )
@@ -131,7 +122,11 @@ describe('react transitions', () => {
131
122
staleTime : 1000 ,
132
123
} )
133
124
125
+
126
+
134
127
const data = React . use ( query . promise )
128
+
129
+
135
130
return < div > A data: { data } </ div >
136
131
}
137
132
@@ -145,9 +140,9 @@ describe('react transitions', () => {
145
140
const query = useQuery ( {
146
141
queryKey : [ 'B' , props . parentId ] ,
147
142
queryFn : async ( ) => {
148
- console . log ( 'B loading' , props . parentId )
143
+
149
144
await deferredB . promise
150
- console . log ( 'B loaded' , props . parentId )
145
+
151
146
deferredB = createDeferred ( )
152
147
return `B-${ props . parentId } `
153
148
} ,
@@ -158,7 +153,7 @@ describe('react transitions', () => {
158
153
159
154
const data = React . use ( query . promise )
160
155
161
- console . log ( 'render B' , data )
156
+
162
157
return < div > B data: { data } </ div >
163
158
}
164
159
function ComponentBLoading ( ) {
@@ -215,10 +210,20 @@ describe('react transitions', () => {
215
210
deferredB . resolve ( )
216
211
217
212
{
218
- const { renderedComponents, withinDOM } = await renderStream . takeRender ( )
219
- withinDOM ( ) . getByText ( 'A data: A-1' )
220
- withinDOM ( ) . getByText ( 'B data: B-1' )
221
- expect ( renderedComponents ) . toEqual ( [ Parent , ComponentB , ComponentA ] )
213
+ // first render
214
+ const firstRender = await renderStream . takeRender ( )
215
+ firstRender . withinDOM ( ) . getByText ( 'A data: A-0' )
216
+ firstRender . withinDOM ( ) . getByText ( 'B data: B-0' )
217
+
218
+ // second render
219
+ const secondRender = await renderStream . takeRender ( )
220
+ secondRender . withinDOM ( ) . getByText ( 'A data: A-1' )
221
+ secondRender . withinDOM ( ) . getByText ( 'B data: B-0' )
222
+
223
+ // third render
224
+ const thirdRender = await renderStream . takeRender ( )
225
+ thirdRender . withinDOM ( ) . getByText ( 'A data: A-1' )
226
+ thirdRender . withinDOM ( ) . getByText ( 'B data: B-1' )
222
227
}
223
228
224
229
} )
0 commit comments