From e952869ff896bc9b1bff8d4238a2256758015c11 Mon Sep 17 00:00:00 2001 From: yungsters Date: Wed, 18 Feb 2015 11:30:25 -0800 Subject: [PATCH] Support rendering to null in ShallowComponentRenderer Reviewers: @sema, @zpao Test Plan: ``` $ npm jest ``` --- src/test/ReactTestUtils.js | 13 ++++++++++--- src/test/__tests__/ReactTestUtils-test.js | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/test/ReactTestUtils.js b/src/test/ReactTestUtils.js index 4c5695b8e2..b3c8a9940c 100644 --- a/src/test/ReactTestUtils.js +++ b/src/test/ReactTestUtils.js @@ -16,6 +16,7 @@ var EventPluginHub = require('EventPluginHub'); var EventPropagators = require('EventPropagators'); var React = require('React'); var ReactElement = require('ReactElement'); +var ReactEmptyComponent = require('ReactEmptyComponent'); var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter'); var ReactCompositeComponent = require('ReactCompositeComponent'); var ReactInstanceHandles = require('ReactInstanceHandles'); @@ -323,13 +324,16 @@ var ReactShallowRenderer = function() { ReactShallowRenderer.prototype.getRenderOutput = function() { return ( (this._instance && this._instance._renderedComponent && - this._instance._renderedComponent._currentElement) + this._instance._renderedComponent._renderedOutput) || null ); }; var NoopInternalComponent = function(element) { - this._currentElement = element; + this._renderedOutput = element; + this._currentElement = element === null || element === false ? + ReactEmptyComponent.emptyElement : + element; } NoopInternalComponent.prototype = { @@ -338,7 +342,10 @@ NoopInternalComponent.prototype = { }, receiveComponent: function(element) { - this._currentElement = element; + this._renderedOutput = element; + this._currentElement = element === null || element === false ? + ReactEmptyComponent.emptyElement : + element; }, unmountComponent: function() { diff --git a/src/test/__tests__/ReactTestUtils-test.js b/src/test/__tests__/ReactTestUtils-test.js index c29968202e..7c091bc994 100644 --- a/src/test/__tests__/ReactTestUtils-test.js +++ b/src/test/__tests__/ReactTestUtils-test.js @@ -57,6 +57,21 @@ describe('ReactTestUtils', function() { ]); }); + it('can shallow render to null', function() { + var SomeComponent = React.createClass({ + render: function() { + return null; + } + }); + + var shallowRenderer = ReactTestUtils.createRenderer(); + shallowRenderer.render(, {}); + + var result = shallowRenderer.getRenderOutput(); + + expect(result).toBe(null); + }); + it('lets you update shallowly rendered components', function() { var SomeComponent = React.createClass({ getInitialState: function() {