@@ -62,13 +62,13 @@ describe('Adapter', () => {
6262 } ) ;
6363
6464 describeWithDOM ( 'mounted render' , ( ) => {
65- function hydratedTreeMatchesUnhydrated ( element ) {
65+ function hydratedTreeMatchesUnhydrated ( element , hydrate = false ) {
6666 const markup = renderToString ( element ) ;
6767 const dom = jsdom . jsdom ( `<div id="root">${ markup } </div>` ) ;
6868
6969 const rendererA = adapter . createRenderer ( {
7070 mode : 'mount' ,
71- attachTo : dom . querySelector ( '#root' ) ,
71+ [ hydrate ? 'hydrateIn' : ' attachTo' ] : dom . querySelector ( '#root' ) ,
7272 } ) ;
7373
7474 rendererA . render ( element ) ;
@@ -89,32 +89,39 @@ describe('Adapter', () => {
8989 expect ( prettyFormat ( nodeA ) ) . to . equal ( prettyFormat ( nodeB ) ) ;
9090 }
9191
92- it ( 'hydrated trees match unhydrated trees' , ( ) => {
93- class Bam extends React . Component {
94- render ( ) { return ( < div > { this . props . children } </ div > ) ; }
95- }
96- class Foo extends React . Component {
97- render ( ) { return ( < Bam > { this . props . children } </ Bam > ) ; }
98- }
99- class One extends React . Component {
100- render ( ) { return ( < Foo > < span > < Foo /> </ span > </ Foo > ) ; }
101- }
102- class Two extends React . Component {
103- render ( ) { return ( < Foo > < span > 2</ span > </ Foo > ) ; }
104- }
105- class Three extends React . Component {
106- render ( ) { return ( < Foo > < span > < div /> </ span > </ Foo > ) ; }
107- }
108- class Four extends React . Component {
109- render ( ) { return ( < Foo > < span > { 'some string' } 4{ 'another string' } </ span > </ Foo > ) ; }
110- }
92+ class BamBam extends React . Component {
93+ render ( ) { return ( < div > { this . props . children } </ div > ) ; }
94+ }
95+ class FooBar extends React . Component {
96+ render ( ) { return ( < BamBam > { this . props . children } </ BamBam > ) ; }
97+ }
98+ class One extends React . Component {
99+ render ( ) { return ( < FooBar > < span > < FooBar /> </ span > </ FooBar > ) ; }
100+ }
101+ class Two extends React . Component {
102+ render ( ) { return ( < FooBar > < span > 2</ span > </ FooBar > ) ; }
103+ }
104+ class Three extends React . Component {
105+ render ( ) { return ( < FooBar > < span > < div /> </ span > </ FooBar > ) ; }
106+ }
107+ class Four extends React . Component {
108+ render ( ) { return ( < FooBar > < span > { 'some string' } 4{ 'another string' } </ span > </ FooBar > ) ; }
109+ }
111110
111+ it ( 'hydrated trees match unhydrated trees' , ( ) => {
112112 hydratedTreeMatchesUnhydrated ( < One /> ) ;
113113 hydratedTreeMatchesUnhydrated ( < Two /> ) ;
114114 hydratedTreeMatchesUnhydrated ( < Three /> ) ;
115115 hydratedTreeMatchesUnhydrated ( < Four /> ) ;
116116 } ) ;
117117
118+ itIf ( REACT16 , 'works with ReactDOM.hydrate' , ( ) => {
119+ hydratedTreeMatchesUnhydrated ( < One /> , true ) ;
120+ hydratedTreeMatchesUnhydrated ( < Two /> , true ) ;
121+ hydratedTreeMatchesUnhydrated ( < Three /> , true ) ;
122+ hydratedTreeMatchesUnhydrated ( < Four /> , true ) ;
123+ } ) ;
124+
118125 it ( 'treats mixed children correctly' , ( ) => {
119126 class Foo extends React . Component {
120127 render ( ) {
0 commit comments