@@ -101,7 +101,7 @@ describe('ReactDOMServerIntegration', () => {
101
101
) {
102
102
// For plain server markup result we have comments between.
103
103
// If we're able to hydrate, they remain.
104
- expect ( e . childNodes . length ) . toBe ( 5 ) ;
104
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 6 : 5 ) ;
105
105
expectTextNode ( e . childNodes [ 0 ] , ' ' ) ;
106
106
expectTextNode ( e . childNodes [ 2 ] , ' ' ) ;
107
107
expectTextNode ( e . childNodes [ 4 ] , ' ' ) ;
@@ -119,8 +119,8 @@ describe('ReactDOMServerIntegration', () => {
119
119
Text< span > More Text</ span >
120
120
</ div > ,
121
121
) ;
122
- expect ( e . childNodes . length ) . toBe ( 2 ) ;
123
- const spanNode = e . childNodes [ 1 ] ;
122
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 3 : 2 ) ;
123
+ const spanNode = e . childNodes [ render === streamRender ? 2 : 1 ] ;
124
124
expectTextNode ( e . childNodes [ 0 ] , 'Text' ) ;
125
125
expect ( spanNode . tagName ) . toBe ( 'SPAN' ) ;
126
126
expect ( spanNode . childNodes . length ) . toBe ( 1 ) ;
@@ -147,19 +147,19 @@ describe('ReactDOMServerIntegration', () => {
147
147
itRenders ( 'a custom element with text' , async render => {
148
148
const e = await render ( < custom-element > Text</ custom-element > ) ;
149
149
expect ( e . tagName ) . toBe ( 'CUSTOM-ELEMENT' ) ;
150
- expect ( e . childNodes . length ) . toBe ( 1 ) ;
150
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 2 : 1 ) ;
151
151
expectNode ( e . firstChild , TEXT_NODE_TYPE , 'Text' ) ;
152
152
} ) ;
153
153
154
154
itRenders ( 'a leading blank child with a text sibling' , async render => {
155
155
const e = await render ( < div > { '' } foo</ div > ) ;
156
- expect ( e . childNodes . length ) . toBe ( 1 ) ;
156
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 2 : 1 ) ;
157
157
expectTextNode ( e . childNodes [ 0 ] , 'foo' ) ;
158
158
} ) ;
159
159
160
160
itRenders ( 'a trailing blank child with a text sibling' , async render => {
161
161
const e = await render ( < div > foo{ '' } </ div > ) ;
162
- expect ( e . childNodes . length ) . toBe ( 1 ) ;
162
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 2 : 1 ) ;
163
163
expectTextNode ( e . childNodes [ 0 ] , 'foo' ) ;
164
164
} ) ;
165
165
@@ -176,7 +176,7 @@ describe('ReactDOMServerIntegration', () => {
176
176
render === streamRender
177
177
) {
178
178
// In the server render output there's a comment between them.
179
- expect ( e . childNodes . length ) . toBe ( 3 ) ;
179
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 4 : 3 ) ;
180
180
expectTextNode ( e . childNodes [ 0 ] , 'foo' ) ;
181
181
expectTextNode ( e . childNodes [ 2 ] , 'bar' ) ;
182
182
} else {
@@ -203,7 +203,7 @@ describe('ReactDOMServerIntegration', () => {
203
203
render === streamRender
204
204
) {
205
205
// In the server render output there's a comment between them.
206
- expect ( e . childNodes . length ) . toBe ( 5 ) ;
206
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 6 : 5 ) ;
207
207
expectTextNode ( e . childNodes [ 0 ] , 'a' ) ;
208
208
expectTextNode ( e . childNodes [ 2 ] , 'b' ) ;
209
209
expectTextNode ( e . childNodes [ 4 ] , 'c' ) ;
@@ -240,11 +240,7 @@ describe('ReactDOMServerIntegration', () => {
240
240
e
241
241
</ div > ,
242
242
) ;
243
- if (
244
- render === serverRender ||
245
- render === clientRenderOnServerString ||
246
- render === streamRender
247
- ) {
243
+ if ( render === serverRender || render === clientRenderOnServerString ) {
248
244
// In the server render output there's comments between text nodes.
249
245
expect ( e . childNodes . length ) . toBe ( 5 ) ;
250
246
expectTextNode ( e . childNodes [ 0 ] , 'a' ) ;
@@ -253,6 +249,15 @@ describe('ReactDOMServerIntegration', () => {
253
249
expectTextNode ( e . childNodes [ 3 ] . childNodes [ 0 ] , 'c' ) ;
254
250
expectTextNode ( e . childNodes [ 3 ] . childNodes [ 2 ] , 'd' ) ;
255
251
expectTextNode ( e . childNodes [ 4 ] , 'e' ) ;
252
+ } else if ( render === streamRender ) {
253
+ // In the server render output there's comments after each text node.
254
+ expect ( e . childNodes . length ) . toBe ( 7 ) ;
255
+ expectTextNode ( e . childNodes [ 0 ] , 'a' ) ;
256
+ expectTextNode ( e . childNodes [ 2 ] , 'b' ) ;
257
+ expect ( e . childNodes [ 4 ] . childNodes . length ) . toBe ( 4 ) ;
258
+ expectTextNode ( e . childNodes [ 4 ] . childNodes [ 0 ] , 'c' ) ;
259
+ expectTextNode ( e . childNodes [ 4 ] . childNodes [ 2 ] , 'd' ) ;
260
+ expectTextNode ( e . childNodes [ 5 ] , 'e' ) ;
256
261
} else {
257
262
expect ( e . childNodes . length ) . toBe ( 4 ) ;
258
263
expectTextNode ( e . childNodes [ 0 ] , 'a' ) ;
@@ -291,7 +296,7 @@ describe('ReactDOMServerIntegration', () => {
291
296
render === streamRender
292
297
) {
293
298
// In the server markup there's a comment between.
294
- expect ( e . childNodes . length ) . toBe ( 3 ) ;
299
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 4 : 3 ) ;
295
300
expectTextNode ( e . childNodes [ 0 ] , 'foo' ) ;
296
301
expectTextNode ( e . childNodes [ 2 ] , '40' ) ;
297
302
} else {
@@ -330,13 +335,13 @@ describe('ReactDOMServerIntegration', () => {
330
335
331
336
itRenders ( 'null children as blank' , async render => {
332
337
const e = await render ( < div > { null } foo</ div > ) ;
333
- expect ( e . childNodes . length ) . toBe ( 1 ) ;
338
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 2 : 1 ) ;
334
339
expectTextNode ( e . childNodes [ 0 ] , 'foo' ) ;
335
340
} ) ;
336
341
337
342
itRenders ( 'false children as blank' , async render => {
338
343
const e = await render ( < div > { false } foo</ div > ) ;
339
- expect ( e . childNodes . length ) . toBe ( 1 ) ;
344
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 2 : 1 ) ;
340
345
expectTextNode ( e . childNodes [ 0 ] , 'foo' ) ;
341
346
} ) ;
342
347
@@ -348,7 +353,7 @@ describe('ReactDOMServerIntegration', () => {
348
353
{ false }
349
354
</ div > ,
350
355
) ;
351
- expect ( e . childNodes . length ) . toBe ( 1 ) ;
356
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 2 : 1 ) ;
352
357
expectTextNode ( e . childNodes [ 0 ] , 'foo' ) ;
353
358
} ) ;
354
359
@@ -735,10 +740,10 @@ describe('ReactDOMServerIntegration', () => {
735
740
</ div > ,
736
741
) ;
737
742
expect ( e . id ) . toBe ( 'parent' ) ;
738
- expect ( e . childNodes . length ) . toBe ( 3 ) ;
743
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 4 : 3 ) ;
739
744
const child1 = e . childNodes [ 0 ] ;
740
745
const textNode = e . childNodes [ 1 ] ;
741
- const child2 = e . childNodes [ 2 ] ;
746
+ const child2 = e . childNodes [ render === streamRender ? 3 : 2 ] ;
742
747
expect ( child1 . id ) . toBe ( 'child1' ) ;
743
748
expect ( child1 . childNodes . length ) . toBe ( 0 ) ;
744
749
expectTextNode ( textNode , ' ' ) ;
@@ -752,10 +757,10 @@ describe('ReactDOMServerIntegration', () => {
752
757
async render => {
753
758
// prettier-ignore
754
759
const e = await render ( < div id = "parent" > < div id = "child" /> </ div > ) ; // eslint-disable-line no-multi-spaces
755
- expect ( e . childNodes . length ) . toBe ( 3 ) ;
760
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 5 : 3 ) ;
756
761
const textNode1 = e . childNodes [ 0 ] ;
757
- const child = e . childNodes [ 1 ] ;
758
- const textNode2 = e . childNodes [ 2 ] ;
762
+ const child = e . childNodes [ render === streamRender ? 2 : 1 ] ;
763
+ const textNode2 = e . childNodes [ render === streamRender ? 3 : 2 ] ;
759
764
expect ( e . id ) . toBe ( 'parent' ) ;
760
765
expectTextNode ( textNode1 , ' ' ) ;
761
766
expect ( child . id ) . toBe ( 'child' ) ;
@@ -778,7 +783,9 @@ describe('ReactDOMServerIntegration', () => {
778
783
) {
779
784
// For plain server markup result we have comments between.
780
785
// If we're able to hydrate, they remain.
781
- expect ( parent . childNodes . length ) . toBe ( 5 ) ;
786
+ expect ( parent . childNodes . length ) . toBe (
787
+ render === streamRender ? 6 : 5 ,
788
+ ) ;
782
789
expectTextNode ( parent . childNodes [ 0 ] , 'a' ) ;
783
790
expectTextNode ( parent . childNodes [ 2 ] , 'b' ) ;
784
791
expectTextNode ( parent . childNodes [ 4 ] , 'c' ) ;
@@ -810,7 +817,7 @@ describe('ReactDOMServerIntegration', () => {
810
817
render === clientRenderOnServerString ||
811
818
render === streamRender
812
819
) {
813
- expect ( e . childNodes . length ) . toBe ( 3 ) ;
820
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 4 : 3 ) ;
814
821
expectTextNode ( e . childNodes [ 0 ] , '<span>Text1"</span>' ) ;
815
822
expectTextNode ( e . childNodes [ 2 ] , '<span>Text2"</span>' ) ;
816
823
} else {
@@ -861,7 +868,7 @@ describe('ReactDOMServerIntegration', () => {
861
868
) ;
862
869
if ( render === serverRender || render === streamRender ) {
863
870
// We have three nodes because there is a comment between them.
864
- expect ( e . childNodes . length ) . toBe ( 3 ) ;
871
+ expect ( e . childNodes . length ) . toBe ( render === streamRender ? 4 : 3 ) ;
865
872
// Everything becomes LF when parsed from server HTML.
866
873
// Null character is ignored.
867
874
expectNode ( e . childNodes [ 0 ] , TEXT_NODE_TYPE , 'foo\nbar' ) ;
0 commit comments