1
1
/* @flow */
2
2
3
- import React from 'react' ;
4
- import { renderToStaticMarkup } from 'react-dom/server' ;
5
- import { mount } from 'enzyme' ;
6
- import { createAsyncComponent , withAsyncComponents } from '../' ;
7
- import { STATE_IDENTIFIER } from '../constants' ;
3
+ import React from 'react'
4
+ import { renderToStaticMarkup } from 'react-dom/server'
5
+ import { mount } from 'enzyme'
6
+ import { createAsyncComponent , withAsyncComponents } from '../'
7
+ import { STATE_IDENTIFIER } from '../constants'
8
8
9
9
function Bob ( { children } ) {
10
- return ( < div > { children } </ div > ) ;
10
+ return ( < div > { children } </ div > )
11
11
}
12
- Bob . propTypes = { children : React . PropTypes . node } ;
13
- Bob . defaultProps = { children : null } ;
12
+ Bob . propTypes = { children : React . PropTypes . node }
13
+ Bob . defaultProps = { children : null }
14
14
15
15
const AsyncBob = createAsyncComponent ( {
16
16
resolve : ( ) => new Promise ( resolve => setTimeout ( ( ) => resolve ( Bob ) , 10 ) ) ,
17
17
name : 'AsyncBob' ,
18
- } ) ;
18
+ } )
19
19
20
20
const AsyncBobTwo = createAsyncComponent ( {
21
21
resolve : ( ) => new Promise ( resolve => setTimeout ( ( ) => resolve ( Bob ) , 10 ) ) ,
22
22
name : 'AsyncBobTwo' ,
23
- } ) ;
23
+ } )
24
24
25
25
const AsyncBobThree = createAsyncComponent ( {
26
26
resolve : ( ) => new Promise ( resolve => setTimeout ( ( ) => resolve ( Bob ) , 10 ) ) ,
27
27
name : 'AsyncBobThree' ,
28
- } ) ;
28
+ } )
29
29
30
30
const DeferredAsyncBob = createAsyncComponent ( {
31
31
resolve : ( ) => new Promise ( resolve => setTimeout ( ( ) => resolve ( Bob ) , 10 ) ) ,
32
32
ssrMode : 'defer' ,
33
33
name : 'DeferredAsyncBob' ,
34
- } ) ;
34
+ } )
35
35
36
36
const BoundaryAsyncBob = createAsyncComponent ( {
37
37
resolve : ( ) => new Promise ( resolve => setTimeout ( ( ) => resolve ( Bob ) , 10 ) ) ,
38
38
ssrMode : 'boundary' ,
39
39
name : 'BoundaryAsyncBob' ,
40
- } ) ;
40
+ } )
41
41
42
42
const app = (
43
43
< AsyncBob >
@@ -56,36 +56,36 @@ const app = (
56
56
</ BoundaryAsyncBob >
57
57
</ div >
58
58
</ AsyncBob >
59
- ) ;
59
+ )
60
60
61
61
describe ( 'integration' , ( ) => {
62
62
afterEach ( ( ) => {
63
- delete global . window [ STATE_IDENTIFIER ] ;
64
- } ) ;
63
+ delete global . window [ STATE_IDENTIFIER ]
64
+ } )
65
65
66
- it ( 'works ' , ( ) => {
67
- const windowTemp = global . window ;
66
+ it ( 'render server and client ' , ( ) => {
67
+ const windowTemp = global . window
68
68
// we have to delete the window to emulate a server only environment
69
- delete global . window ;
69
+ delete global . window
70
70
71
71
// "Server" side render...
72
72
return withAsyncComponents ( app )
73
73
. then ( ( { appWithAsyncComponents, state, STATE_IDENTIFIER : STATE_ID } ) => {
74
- const serverString = renderToStaticMarkup ( appWithAsyncComponents ) ;
75
- expect ( serverString ) . toMatchSnapshot ( ) ;
74
+ const serverString = renderToStaticMarkup ( appWithAsyncComponents )
75
+ expect ( serverString ) . toMatchSnapshot ( )
76
76
// Restore the window and attach the state to the "window" for the client
77
- global . window = windowTemp ;
78
- global . window [ STATE_ID ] = state ;
79
- return serverString ;
77
+ global . window = windowTemp
78
+ global . window [ STATE_ID ] = state
79
+ return serverString
80
80
} )
81
81
. then ( serverHTML =>
82
82
// "Client" side render...
83
83
withAsyncComponents ( app )
84
84
. then ( ( { appWithAsyncComponents } ) => {
85
- const clientRenderWrapper = mount ( appWithAsyncComponents ) ;
86
- expect ( clientRenderWrapper ) . toMatchSnapshot ( ) ;
87
- expect ( renderToStaticMarkup ( appWithAsyncComponents ) ) . toEqual ( serverHTML ) ;
88
- return clientRenderWrapper ;
85
+ const clientRenderWrapper = mount ( appWithAsyncComponents )
86
+ expect ( clientRenderWrapper ) . toMatchSnapshot ( )
87
+ expect ( renderToStaticMarkup ( appWithAsyncComponents ) ) . toEqual ( serverHTML )
88
+ return clientRenderWrapper
89
89
} )
90
90
// Now give the client side components time to resolve
91
91
. then ( clientRenderWrapper => new Promise ( resolve =>
@@ -95,6 +95,6 @@ describe('integration', () => {
95
95
. then ( clientRenderWrapper =>
96
96
expect ( clientRenderWrapper ) . toMatchSnapshot ( ) ,
97
97
) ,
98
- ) ;
99
- } ) ;
100
- } ) ;
98
+ )
99
+ } )
100
+ } )
0 commit comments