11import * as React from 'react'
2- import * as ReactDOMServer from 'react-dom/server'
32import { render } from '../'
43
54test ( 'rerender will re-render the element' , ( ) => {
@@ -11,19 +10,22 @@ test('rerender will re-render the element', () => {
1110} )
1211
1312test ( 'hydrate will not update props until next render' , ( ) => {
13+ const initialInputElement = document . createElement ( 'input' )
1414 const container = document . createElement ( 'div' )
15+ container . appendChild ( initialInputElement )
1516 document . body . appendChild ( container )
16- const ui = < main > Server</ main >
17- container . innerHTML = ReactDOMServer . renderToString ( ui )
1817
19- const { rerender} = render ( ui , {
18+ const firstValue = 'hello'
19+ initialInputElement . value = firstValue
20+
21+ const { rerender} = render ( < input value = "" onChange = { ( ) => null } /> , {
2022 container,
2123 hydrate : true ,
2224 } )
2325
24- expect ( container ) . toHaveTextContent ( 'Server' )
25-
26- rerender ( < main > Client</ main > )
26+ expect ( initialInputElement ) . toHaveValue ( firstValue )
2727
28- expect ( container ) . toHaveTextContent ( 'Client' )
28+ const secondValue = 'goodbye'
29+ rerender ( < input value = { secondValue } onChange = { ( ) => null } /> )
30+ expect ( initialInputElement ) . toHaveValue ( secondValue )
2931} )
0 commit comments