@@ -663,13 +663,24 @@ describe('ReactMount', () => {
663663 } ) ;
664664
665665 it ( 'should warn when hydrate replaces an element within server-rendered nested components (replacement diff)' , ( ) => {
666- class TestPaddingBeforeComponent extends React . Component {
666+ // See fixtures/ssr: ssr-hydrationWarningHostInstanceIndex-didNotFindHydratableInstance-replacement
667+
668+ class TestPaddingBeforeInnerComponent extends React . Component {
667669 render ( ) {
668670 return (
669671 < React . Fragment >
670- < div data-ssr-mismatch-padding-before = "1" />
671672 < div data-ssr-mismatch-padding-before = "2" />
672673 < div data-ssr-mismatch-padding-before = "3" />
674+ </ React . Fragment >
675+ ) ;
676+ }
677+ }
678+ class TestPaddingBeforeComponent extends React . Component {
679+ render ( ) {
680+ return (
681+ < React . Fragment >
682+ < div data-ssr-mismatch-padding-before = "1" />
683+ < TestPaddingBeforeInnerComponent />
673684 < div data-ssr-mismatch-padding-before = "4" />
674685 < div data-ssr-mismatch-padding-before = "5" />
675686 </ React . Fragment >
@@ -691,7 +702,7 @@ describe('ReactMount', () => {
691702 }
692703 class TestNestedComponent extends React . Component {
693704 render ( ) {
694- if ( this . props . server ) {
705+ if ( this . props . isServer ) {
695706 return (
696707 < div >
697708 < TestPaddingBeforeComponent />
@@ -713,18 +724,18 @@ describe('ReactMount', () => {
713724 }
714725 class TestComponent extends React . Component {
715726 render ( ) {
716- return < TestNestedComponent server = { this . props . server } /> ;
727+ return < TestNestedComponent isServer = { this . props . isServer } /> ;
717728 }
718729 }
719730
720731 const div = document . createElement ( 'div' ) ;
721732 const markup = ReactDOMServer . renderToString (
722- < TestComponent server = { true } /> ,
733+ < TestComponent isServer = { true } /> ,
723734 ) ;
724735 div . innerHTML = markup ;
725736
726737 expect ( ( ) =>
727- ReactDOM . hydrate ( < TestComponent server = { false } /> , div ) ,
738+ ReactDOM . hydrate ( < TestComponent isServer = { false } /> , div ) ,
728739 ) . toWarnDev (
729740 'Warning: Expected server HTML to contain a matching <h2> in <div>.\n\n' +
730741 ' <div data-reactroot="">\n' +
@@ -894,27 +905,60 @@ describe('ReactMount', () => {
894905 ) ;
895906 } ) ;
896907
897- it ( 'should warn when hydrate inserts a text node between matching elements (insertion diff)' , ( ) => {
898- // See fixtures/ssr: ssr-warnForInsertedHydratedText-didNotFindHydratableTextInstance
908+ it ( 'should warn when hydrate inserts a text node after matching elements (insertion diff)' , ( ) => {
909+ // See fixtures/ssr: ssr-hydrationWarningHostInstanceIndex-didNotFindHydratableInstance-insertion
910+
911+ class TestPaddingBeforeInnerInnerComponent extends React . Component {
912+ render ( ) {
913+ return < div data-ssr-mismatch-padding-before = "6" /> ;
914+ }
915+ }
916+ class TestPaddingBeforeInnerComponent extends React . Component {
917+ render ( ) {
918+ return (
919+ < React . Fragment >
920+ < div data-ssr-mismatch-padding-before = "4" />
921+ < div data-ssr-mismatch-padding-before = "5" />
922+ < TestPaddingBeforeInnerInnerComponent />
923+ </ React . Fragment >
924+ ) ;
925+ }
926+ }
927+ class TestPaddingBeforeComponent extends React . Component {
928+ render ( ) {
929+ return (
930+ < React . Fragment >
931+ < div data-ssr-mismatch-padding-before = "2" />
932+ < div data-ssr-mismatch-padding-before = "3" />
933+ < TestPaddingBeforeInnerComponent />
934+ < div data-ssr-mismatch-padding-before = "7" />
935+ < div data-ssr-mismatch-padding-before = "8" />
936+ < div data-ssr-mismatch-padding-before = "9" />
937+ </ React . Fragment >
938+ ) ;
939+ }
940+ }
899941
900942 const div = document . createElement ( 'div' ) ;
901943 const markup = ReactDOMServer . renderToString (
902944 < div >
903- < span data-ssr-mismatch-padding-before = "1" />
904- < span />
905- < div data-ssr-mismatch-padding-after = "1" />
906- < div data-ssr-mismatch-padding-after = "2" />
907- < div data-ssr-mismatch-padding-after = "3" />
908- < div data-ssr-mismatch-padding-after = "4" />
909- < div data-ssr-mismatch-padding-after = "5" />
945+ < div data-ssr-mismatch-padding-before = "1" />
946+ < TestPaddingBeforeComponent />
947+ < div data-ssr-mismatch-padding-before = "10" />
948+ < div data-ssr-mismatch-padding-before = "11" />
949+ < div data-ssr-mismatch-padding-before = "12" />
910950 </ div > ,
911951 ) ;
912952 div . innerHTML = markup ;
913953
914954 expect ( ( ) =>
915955 ReactDOM . hydrate (
916956 < div >
917- < span data-ssr-mismatch-padding-before = "1" />
957+ < div data-ssr-mismatch-padding-before = "1" />
958+ < TestPaddingBeforeComponent />
959+ < div data-ssr-mismatch-padding-before = "10" />
960+ < div data-ssr-mismatch-padding-before = "11" />
961+ < div data-ssr-mismatch-padding-before = "12" />
918962 SSRMismatchTest client text
919963 </ div > ,
920964 div ,
@@ -923,14 +967,19 @@ describe('ReactMount', () => {
923967 'Warning: Expected server HTML to contain a matching text node' +
924968 " for {'SSRMismatchTest client text'} in <div>.\n\n" +
925969 ' <div data-reactroot="">\n' +
926- ' <span data-ssr-mismatch-padding-before="1"></span>\n' +
970+ ' <div data-ssr-mismatch-padding-before="1"></div>\n' +
971+ ' <div data-ssr-mismatch-padding-before="2"></div>\n' +
972+ ' <div data-ssr-mismatch-padding-before="3"></div>\n' +
973+ ' <div data-ssr-mismatch-padding-before="4"></div>\n' +
974+ ' <div data-ssr-mismatch-padding-before="5"></div>\n' +
975+ ' <div data-ssr-mismatch-padding-before="6"></div>\n' +
976+ ' <div data-ssr-mismatch-padding-before="7"></div>\n' +
977+ ' <div data-ssr-mismatch-padding-before="8"></div>\n' +
978+ ' <div data-ssr-mismatch-padding-before="9"></div>\n' +
979+ ' <div data-ssr-mismatch-padding-before="10"></div>\n' +
980+ ' <div data-ssr-mismatch-padding-before="11"></div>\n' +
981+ ' <div data-ssr-mismatch-padding-before="12"></div>\n' +
927982 "+ {'SSRMismatchTest client text'}\n" +
928- ' <span></span>\n' +
929- ' <div data-ssr-mismatch-padding-after="1"></div>\n' +
930- ' <div data-ssr-mismatch-padding-after="2"></div>\n' +
931- ' <div data-ssr-mismatch-padding-after="3"></div>\n' +
932- ' <div data-ssr-mismatch-padding-after="4"></div>\n' +
933- ' <div data-ssr-mismatch-padding-after="5"></div>\n' +
934983 ' </div>\n\n' +
935984 ' in div (at **)' ,
936985 ) ;
0 commit comments