1
1
import * as React from 'react'
2
+ import * as ReactDOMServer from 'react-dom/server'
2
3
import { render } from '../'
3
4
4
5
test ( 'rerender will re-render the element' , ( ) => {
@@ -10,22 +11,19 @@ test('rerender will re-render the element', () => {
10
11
} )
11
12
12
13
test ( 'hydrate will not update props until next render' , ( ) => {
13
- const initialInputElement = document . createElement ( 'input' )
14
14
const container = document . createElement ( 'div' )
15
- container . appendChild ( initialInputElement )
16
15
document . body . appendChild ( container )
16
+ const ui = < main > Server</ main >
17
+ container . innerHTML = ReactDOMServer . renderToString ( ui )
17
18
18
- const firstValue = 'hello'
19
- initialInputElement . value = firstValue
20
-
21
- const { rerender} = render ( < input value = "" onChange = { ( ) => null } /> , {
19
+ const { rerender} = render ( ui , {
22
20
container,
23
21
hydrate : true ,
24
22
} )
25
23
26
- expect ( initialInputElement ) . toHaveValue ( firstValue )
24
+ expect ( container ) . toHaveTextContent ( 'Server' )
25
+
26
+ rerender ( < main > Client</ main > )
27
27
28
- const secondValue = 'goodbye'
29
- rerender ( < input value = { secondValue } onChange = { ( ) => null } /> )
30
- expect ( initialInputElement ) . toHaveValue ( secondValue )
28
+ expect ( container ) . toHaveTextContent ( 'Client' )
31
29
} )
0 commit comments