@@ -11,73 +11,79 @@ import { Suspense } from 'react'
1111import { ErrorBoundary } from 'react-error-boundary'
1212
1313describe ( 'useSWR - promise' , ( ) => {
14- it ( 'should allow passing promises as fallback' , async ( ) => {
15- const key = createKey ( )
14+ itShouldSkipForReactCanary (
15+ 'should allow passing promises as fallback' ,
16+ async ( ) => {
17+ const key = createKey ( )
1618
17- const firstRender = [ false , undefined ] as [ boolean , string | undefined ]
18- function Page ( ) {
19- const { data } = useSWR ( key , ( ) => {
20- return createResponse ( 'new data' , { delay : 100 } )
21- } )
22- if ( ! firstRender [ 0 ] ) {
23- firstRender [ 0 ] = true
24- firstRender [ 1 ] = data
19+ const firstRender = [ false , undefined ] as [ boolean , string | undefined ]
20+ function Page ( ) {
21+ const { data } = useSWR ( key , ( ) => {
22+ return createResponse ( 'new data' , { delay : 100 } )
23+ } )
24+ if ( ! firstRender [ 0 ] ) {
25+ firstRender [ 0 ] = true
26+ firstRender [ 1 ] = data
27+ }
28+ return < div > data:{ data } </ div >
2529 }
26- return < div > data:{ data } </ div >
27- }
2830
29- const fetchData = createResponse ( 'initial data' , { delay : 100 } )
31+ const fetchData = createResponse ( 'initial data' , { delay : 100 } )
3032
31- renderWithConfig (
32- < SWRConfig
33- value = { {
34- fallback : {
35- [ key ] : fetchData
36- }
37- } }
38- >
39- < Page />
40- </ SWRConfig >
41- )
33+ renderWithConfig (
34+ < SWRConfig
35+ value = { {
36+ fallback : {
37+ [ key ] : fetchData
38+ }
39+ } }
40+ >
41+ < Page />
42+ </ SWRConfig >
43+ )
4244
43- await screen . findByText ( 'data:initial data' )
44- await act ( ( ) => sleep ( 100 ) ) // wait 100ms until the request inside finishes
45- await screen . findByText ( 'data:new data' )
45+ await screen . findByText ( 'data:initial data' )
46+ await act ( ( ) => sleep ( 100 ) ) // wait 100ms until the request inside finishes
47+ await screen . findByText ( 'data:new data' )
4648
47- expect ( firstRender [ 1 ] ) . toEqual ( 'initial data' )
48- } )
49+ expect ( firstRender [ 1 ] ) . toEqual ( 'initial data' )
50+ }
51+ )
4952
50- it ( 'should allow passing promises as fallbackData' , async ( ) => {
51- const key = createKey ( )
53+ itShouldSkipForReactCanary (
54+ 'should allow passing promises as fallbackData' ,
55+ async ( ) => {
56+ const key = createKey ( )
5257
53- const fetchData = createResponse ( 'initial data' , { delay : 100 } )
54- const firstRender = [ false , undefined ] as [ boolean , string | undefined ]
58+ const fetchData = createResponse ( 'initial data' , { delay : 100 } )
59+ const firstRender = [ false , undefined ] as [ boolean , string | undefined ]
5560
56- function Page ( ) {
57- const { data } = useSWR (
58- key ,
59- ( ) => {
60- return createResponse ( 'new data' , { delay : 100 } )
61- } ,
62- {
63- fallbackData : fetchData
61+ function Page ( ) {
62+ const { data } = useSWR (
63+ key ,
64+ ( ) => {
65+ return createResponse ( 'new data' , { delay : 100 } )
66+ } ,
67+ {
68+ fallbackData : fetchData
69+ }
70+ )
71+ if ( ! firstRender [ 0 ] ) {
72+ firstRender [ 0 ] = true
73+ firstRender [ 1 ] = data
6474 }
65- )
66- if ( ! firstRender [ 0 ] ) {
67- firstRender [ 0 ] = true
68- firstRender [ 1 ] = data
75+ return < div > data:{ data } </ div >
6976 }
70- return < div > data:{ data } </ div >
71- }
7277
73- renderWithConfig ( < Page /> )
78+ renderWithConfig ( < Page /> )
7479
75- await screen . findByText ( 'data:initial data' )
76- await act ( ( ) => sleep ( 100 ) ) // wait 100ms until the request inside finishes
77- await screen . findByText ( 'data:new data' )
80+ await screen . findByText ( 'data:initial data' )
81+ await act ( ( ) => sleep ( 100 ) ) // wait 100ms until the request inside finishes
82+ await screen . findByText ( 'data:new data' )
7883
79- expect ( firstRender [ 1 ] ) . toEqual ( 'initial data' )
80- } )
84+ expect ( firstRender [ 1 ] ) . toEqual ( 'initial data' )
85+ }
86+ )
8187
8288 itShouldSkipForReactCanary (
8389 'should suspend when resolving the fallback promise' ,
0 commit comments