From 2e72fd8e43293b2b623bbd5636e492ac03fdf42f Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Fri, 13 Mar 2015 17:55:02 -0700 Subject: [PATCH] Merge pull request #3412 from spicyj/gh-3329 Squash getDOMNode warning from isDOMComponent (cherry picked from commit ed257cb691775c508ab19eee69c87c773ec79649) --- src/test/ReactTestUtils.js | 2 +- src/test/__tests__/ReactTestUtils-test.js | 27 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/test/ReactTestUtils.js b/src/test/ReactTestUtils.js index 54f84c8bb7..9784cb9034 100644 --- a/src/test/ReactTestUtils.js +++ b/src/test/ReactTestUtils.js @@ -65,7 +65,7 @@ var ReactTestUtils = { isDOMComponent: function(inst) { // TODO: Fix this heuristic. It's just here because composites can currently // pretend to be DOM components. - return !!(inst && inst.getDOMNode && inst.tagName); + return !!(inst && inst.tagName && inst.getDOMNode); }, isDOMComponentElement: function(inst) { diff --git a/src/test/__tests__/ReactTestUtils-test.js b/src/test/__tests__/ReactTestUtils-test.js index 86b69f70d2..17cc303d4c 100644 --- a/src/test/__tests__/ReactTestUtils-test.js +++ b/src/test/__tests__/ReactTestUtils-test.js @@ -179,4 +179,31 @@ describe('ReactTestUtils', function() { // Should be document order, not mount order (which would be purple, orange) expect(log).toEqual(['orangepurple', 'orange', 'purple']); }); + + it('does not warn for getDOMNode on ES6 classes', function() { + var Foo = React.createClass({ + render: function() { + return
; + } + }); + + class Bar extends React.Component { + render() { + return
; + } + } + + spyOn(console, 'warn'); + + var foo = ReactTestUtils.renderIntoDocument(); + expect(ReactTestUtils.isDOMComponent(foo)).toBe(false); + + var bar = ReactTestUtils.renderIntoDocument(); + expect(ReactTestUtils.isDOMComponent(bar)).toBe(false); + + var div = ReactTestUtils.renderIntoDocument(
); + expect(ReactTestUtils.isDOMComponent(div)).toBe(true); + + expect(console.warn.calls.length).toBe(0); + }); });