@samitouri / QOS-React / commits / e7d0053e65

[fizz] Fix validateIterable call (#24166)

* fix validate iterable call * supports iterable * gate test by experimental

salazarm committed Mar 25, 2022 at 14:03 UTC e7d0053e65db49a536440eb24e6c1e4961d976f6
2 files changed +24 -1
packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js
+23
@@ -2508,4 +2508,27 @@ describe('ReactDOMFizzServer', () => {
2508 <span>default</span>,
2509 ]);
2510 });
2511 +
2512 + // @gate experimental
2513 + it('Supports iterable', async () => {
2514 + const Immutable = require('immutable');
2515 +
2516 + const mappedJSX = Immutable.fromJS([
2517 + {name: 'a', value: 'a'},
2518 + {name: 'b', value: 'b'},
2519 + ]).map(item => <li key={item.get('value')}>{item.get('name')}</li>);
2520 +
2521 + await act(async () => {
2522 + const {pipe} = ReactDOMFizzServer.renderToPipeableStream(
2523 + <ul>{mappedJSX}</ul>,
2524 + );
2525 + pipe(writable);
2526 + });
2527 + expect(getVisibleChildren(container)).toEqual(
2528 + <ul>
2529 + <li>a</li>
2530 + <li>b</li>
2531 + </ul>,
2532 + );
2533 + });
2534 });
packages/react-server/src/ReactFizzServer.js
+1 -1
@@ -1181,7 +1181,7 @@ function renderNodeDestructive(
1181 const iteratorFn = getIteratorFn(node);
1182 if (iteratorFn) {
1183 if (__DEV__) {
1184 - validateIterable(node, iteratorFn());
1184 + validateIterable(node, iteratorFn);
1185 }
1186 const iterator = iteratorFn.call(node);
1187 if (iterator) {