diff --git a/scripts/fiber/tests-failing.txt b/scripts/fiber/tests-failing.txt
index 0aba62db6f..f5338b4598 100644
--- a/scripts/fiber/tests-failing.txt
+++ b/scripts/fiber/tests-failing.txt
@@ -27,6 +27,9 @@ src/renderers/art/__tests__/ReactART-test.js
src/renderers/dom/__tests__/ReactDOMProduction-test.js
* should throw with an error code in production
+src/renderers/dom/fiber/__tests__/ReactDOMFiber-test.js
+* findDOMNode should find dom element after expanding a fragment
+
src/renderers/dom/shared/__tests__/ReactDOM-test.js
* throws in render() if the mount callback is not a function
* throws in render() if the update callback is not a function
@@ -63,6 +66,9 @@ src/renderers/dom/shared/__tests__/ReactRenderDocument-test.js
* should throw on full document render w/ no markup
* supports findDOMNode on full-page components
+src/renderers/dom/shared/__tests__/findDOMNode-test.js
+* findDOMNode should find dom element after an update from null
+
src/renderers/shared/__tests__/ReactPerf-test.js
* should count no-op update as waste
* should count no-op update in child as waste
diff --git a/src/renderers/dom/fiber/__tests__/ReactDOMFiber-test.js b/src/renderers/dom/fiber/__tests__/ReactDOMFiber-test.js
index 13f6a41499..4fb7cd2137 100644
--- a/src/renderers/dom/fiber/__tests__/ReactDOMFiber-test.js
+++ b/src/renderers/dom/fiber/__tests__/ReactDOMFiber-test.js
@@ -459,5 +459,29 @@ describe('ReactDOMFiber', () => {
expect(portalContainer.innerHTML).toBe('
changed-changed
');
expect(container.innerHTML).toBe('');
});
+
+ it('findDOMNode should find dom element after expanding a fragment', () => {
+ class MyNode extends React.Component {
+ render() {
+ return (
+ !this.props.flag ?
+ [] :
+ [, ]
+ );
+ }
+ }
+
+ var container = document.createElement('div');
+
+ var myNodeA = ReactDOM.render(, container);
+ var a = ReactDOM.findDOMNode(myNodeA);
+ expect(a.tagName).toBe('DIV');
+
+ var myNodeB = ReactDOM.render(, container);
+ expect(myNodeA === myNodeB).toBe(true);
+
+ var b = ReactDOM.findDOMNode(myNodeB);
+ expect(b.tagName).toBe('SPAN');
+ });
}
});
diff --git a/src/renderers/dom/shared/__tests__/findDOMNode-test.js b/src/renderers/dom/shared/__tests__/findDOMNode-test.js
index ea1e72e58c..e7f7aba6d3 100644
--- a/src/renderers/dom/shared/__tests__/findDOMNode-test.js
+++ b/src/renderers/dom/shared/__tests__/findDOMNode-test.js
@@ -34,6 +34,32 @@ describe('findDOMNode', () => {
expect(mySameDiv).toBe(myDiv);
});
+ it('findDOMNode should find dom element after an update from null', () => {
+ function Bar({ flag }) {
+ if (flag) {
+ return A;
+ }
+ return null;
+ }
+ class MyNode extends React.Component {
+ render() {
+ return ;
+ }
+ }
+
+ var container = document.createElement('div');
+
+ var myNodeA = ReactDOM.render(, container);
+ var a = ReactDOM.findDOMNode(myNodeA);
+ expect(a).toBe(null);
+
+ var myNodeB = ReactDOM.render(, container);
+ expect(myNodeA === myNodeB).toBe(true);
+
+ var b = ReactDOM.findDOMNode(myNodeB);
+ expect(b.tagName).toBe('SPAN');
+ });
+
it('findDOMNode should reject random objects', () => {
expect(function() {
ReactDOM.findDOMNode({foo: 'bar'});