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