@@ -4,6 +4,9 @@ import TestRenderer, { type ReactTestRenderer } from 'react-test-renderer';
4
4
5
5
import { configure , renderAsync , screen , within } from '..' ;
6
6
7
+ const isReact19 = React . version . startsWith ( '19.' ) ;
8
+ const testGateReact19 = isReact19 ? test : test . skip ;
9
+
7
10
configure ( {
8
11
asyncUtilTimeout : 5000 ,
9
12
} ) ;
@@ -16,75 +19,33 @@ function wait(delay: number) {
16
19
) ;
17
20
}
18
21
19
- function Suspendable < T > ( { promise } : { promise : Promise < T > } ) {
22
+ function Suspending < T > ( { promise } : { promise : Promise < T > } ) {
20
23
React . use ( promise ) ;
21
- return < View testID = "test " /> ;
24
+ return < View testID = "view " /> ;
22
25
}
23
26
24
- test ( 'render supports components which can suspend' , async ( ) => {
27
+ testGateReact19 ( 'render supports components which can suspend' , async ( ) => {
25
28
await renderAsync (
26
29
< View >
27
30
< React . Suspense fallback = { < View testID = "fallback" /> } >
28
- < Suspendable promise = { wait ( 100 ) } />
31
+ < Suspending promise = { wait ( 100 ) } />
29
32
</ React . Suspense >
30
33
</ View > ,
31
34
) ;
32
35
33
36
expect ( screen . getByTestId ( 'fallback' ) ) . toBeOnTheScreen ( ) ;
34
- expect ( await screen . findByTestId ( 'test' ) ) . toBeOnTheScreen ( ) ;
35
- } ) ;
36
-
37
- test ( 'react test renderer supports components which can suspend' , async ( ) => {
38
- let renderer : ReactTestRenderer ;
39
-
40
- // eslint-disable-next-line require-await
41
- await React . act ( async ( ) => {
42
- renderer = TestRenderer . create (
43
- < View >
44
- < React . Suspense fallback = { < View testID = "fallback" /> } >
45
- < Suspendable promise = { wait ( 100 ) } />
46
- </ React . Suspense >
47
- </ View > ,
48
- ) ;
49
- } ) ;
50
-
51
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
52
- const view = within ( renderer ! . root ) ;
53
-
54
- expect ( view . getByTestId ( 'fallback' ) ) . toBeDefined ( ) ;
55
- expect ( await view . findByTestId ( 'test' ) ) . toBeDefined ( ) ;
56
- } ) ;
57
-
58
- test ( 'react test renderer supports components which can suspend 500' , async ( ) => {
59
- let renderer : ReactTestRenderer ;
60
-
61
- // eslint-disable-next-line require-await
62
- await React . act ( async ( ) => {
63
- renderer = TestRenderer . create (
64
- < View >
65
- < React . Suspense fallback = { < View testID = "fallback" /> } >
66
- < Suspendable promise = { wait ( 500 ) } />
67
- </ React . Suspense >
68
- </ View > ,
69
- ) ;
70
- } ) ;
71
-
72
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
73
- const view = within ( renderer ! . root ) ;
74
-
75
- expect ( view . getByTestId ( 'fallback' ) ) . toBeDefined ( ) ;
76
- expect ( await view . findByTestId ( 'test' ) ) . toBeDefined ( ) ;
37
+ expect ( await screen . findByTestId ( 'view' ) ) . toBeOnTheScreen ( ) ;
77
38
} ) ;
78
39
79
- test ( 'react test renderer supports components which can suspend 1000ms ' , async ( ) => {
40
+ testGateReact19 ( 'react test renderer supports components which can suspend' , async ( ) => {
80
41
let renderer : ReactTestRenderer ;
81
42
82
43
// eslint-disable-next-line require-await
83
44
await React . act ( async ( ) => {
84
45
renderer = TestRenderer . create (
85
46
< View >
86
47
< React . Suspense fallback = { < View testID = "fallback" /> } >
87
- < Suspendable promise = { wait ( 1000 ) } />
48
+ < Suspending promise = { wait ( 100 ) } />
88
49
</ React . Suspense >
89
50
</ View > ,
90
51
) ;
@@ -94,5 +55,5 @@ test('react test renderer supports components which can suspend 1000ms', async (
94
55
const view = within ( renderer ! . root ) ;
95
56
96
57
expect ( view . getByTestId ( 'fallback' ) ) . toBeDefined ( ) ;
97
- expect ( await view . findByTestId ( 'test' , undefined , { timeout : 5000 } ) ) . toBeDefined ( ) ;
58
+ expect ( await view . findByTestId ( 'view' ) ) . toBeDefined ( ) ;
98
59
} ) ;
0 commit comments