mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Merge pull request #3183 from yungsters/master
Support rendering to null in ShallowComponentRenderer
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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(<SomeComponent />, {});
|
||||
|
||||
var result = shallowRenderer.getRenderOutput();
|
||||
|
||||
expect(result).toBe(null);
|
||||
});
|
||||
|
||||
it('lets you update shallowly rendered components', function() {
|
||||
var SomeComponent = React.createClass({
|
||||
getInitialState: function() {
|
||||
|
||||
Reference in New Issue
Block a user