11import * as React from 'react'
2+ import * as ReactDOMServer from 'react-dom/server'
23import { render } from '../'
34
45test ( 'rerender will re-render the element' , ( ) => {
@@ -10,22 +11,19 @@ test('rerender will re-render the element', () => {
1011} )
1112
1213test ( 'hydrate will not update props until next render' , ( ) => {
13- const initialInputElement = document . createElement ( 'input' )
1414 const container = document . createElement ( 'div' )
15- container . appendChild ( initialInputElement )
1615 document . body . appendChild ( container )
16+ const ui = < main > Server</ main >
17+ container . innerHTML = ReactDOMServer . renderToString ( ui )
1718
18- const firstValue = 'hello'
19- initialInputElement . value = firstValue
20-
21- const { rerender} = render ( < input value = "" onChange = { ( ) => null } /> , {
19+ const { rerender} = render ( ui , {
2220 container,
2321 hydrate : true ,
2422 } )
2523
26- expect ( initialInputElement ) . toHaveValue ( firstValue )
24+ expect ( container ) . toHaveTextContent ( 'Server' )
25+
26+ rerender ( < main > Client</ main > )
2727
28- const secondValue = 'goodbye'
29- rerender ( < input value = { secondValue } onChange = { ( ) => null } /> )
30- expect ( initialInputElement ) . toHaveValue ( secondValue )
28+ expect ( container ) . toHaveTextContent ( 'Client' )
3129} )
0 commit comments