From 7c1fdc31eeeac0dbccfd3de699968622f67ef187 Mon Sep 17 00:00:00 2001 From: maciej-ka Date: Sat, 27 Jan 2018 21:11:20 +0100 Subject: [PATCH] Handle nested Fragments in toTree (#12106) --- .../src/ReactTestRenderer.js | 2 ++ .../src/__tests__/ReactTestRenderer-test.js | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/packages/react-test-renderer/src/ReactTestRenderer.js b/packages/react-test-renderer/src/ReactTestRenderer.js index 516511ca0c94..036fe1885ad5 100644 --- a/packages/react-test-renderer/src/ReactTestRenderer.js +++ b/packages/react-test-renderer/src/ReactTestRenderer.js @@ -338,6 +338,8 @@ function toTree(node: ?Fiber) { }; case HostText: // 6 return node.stateNode.text; + case Fragment: // 10 + return toTree(node.child); default: invariant( false, diff --git a/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.js b/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.js index e077fd6e58ec..d39311986518 100644 --- a/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.js +++ b/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.js @@ -530,6 +530,28 @@ describe('ReactTestRenderer', () => { ); }); + it('toTree() handles nested Fragments', () => { + const Foo = () => ( + + foo + + ); + const renderer = ReactTestRenderer.create(); + const tree = renderer.toTree(); + + cleanNodeOrArray(tree); + + expect(prettyFormat(tree)).toEqual( + prettyFormat({ + nodeType: 'component', + type: Foo, + instance: null, + props: {}, + rendered: 'foo', + }), + ); + }); + it('toTree() handles null rendering components', () => { class Foo extends React.Component { render() {