Merge pull request #3716 from graue/optional-shallow-render-context

Shallow render components that define contextTypes
This commit is contained in:
Scott Feeney
2015-04-22 10:54:40 -07:00
committed by Paul O’Shannessy
parent bd6e42fab4
commit 135499782e
2 changed files with 25 additions and 5 deletions
+4
View File
@@ -26,6 +26,7 @@ var ReactUpdates = require('ReactUpdates');
var SyntheticEvent = require('SyntheticEvent');
var assign = require('Object.assign');
var emptyObject = require('emptyObject');
var topLevelTypes = EventConstants.topLevelTypes;
@@ -368,6 +369,9 @@ assign(
);
ReactShallowRenderer.prototype.render = function(element, context) {
if (!context) {
context = emptyObject;
}
var transaction = ReactUpdates.ReactReconcileTransaction.getPooled();
this._render(element, transaction, context);
ReactUpdates.ReactReconcileTransaction.release(transaction);
+21 -5
View File
@@ -46,7 +46,7 @@ describe('ReactTestUtils', function() {
});
var shallowRenderer = ReactTestUtils.createRenderer();
shallowRenderer.render(<SomeComponent />, {});
shallowRenderer.render(<SomeComponent />);
var result = shallowRenderer.getRenderOutput();
@@ -68,7 +68,7 @@ describe('ReactTestUtils', function() {
});
var shallowRenderer = ReactTestUtils.createRenderer();
shallowRenderer.render(<SomeComponent />, {});
shallowRenderer.render(<SomeComponent />);
shallowRenderer.unmount();
expect(componentWillUnmount).toBeCalled();
@@ -82,7 +82,7 @@ describe('ReactTestUtils', function() {
});
var shallowRenderer = ReactTestUtils.createRenderer();
shallowRenderer.render(<SomeComponent />, {});
shallowRenderer.render(<SomeComponent />);
var result = shallowRenderer.getRenderOutput();
@@ -123,7 +123,7 @@ describe('ReactTestUtils', function() {
});
var shallowRenderer = ReactTestUtils.createRenderer();
shallowRenderer.render(<SomeComponent />, {});
shallowRenderer.render(<SomeComponent />);
var result = shallowRenderer.getRenderOutput();
expect(result.type).toBe('div');
expect(result.props.children).toEqual([
@@ -131,7 +131,7 @@ describe('ReactTestUtils', function() {
<span className="child2" />
]);
shallowRenderer.render(<SomeComponent aNew="prop" />, {});
shallowRenderer.render(<SomeComponent aNew="prop" />);
var updatedResult = shallowRenderer.getRenderOutput();
expect(updatedResult.type).toBe('a');
@@ -143,6 +143,22 @@ describe('ReactTestUtils', function() {
expect(updatedResultCausedByClick.props.className).toBe('was-clicked');
});
it('can shallowly render components with contextTypes', function() {
var SimpleComponent = React.createClass({
contextTypes: {
name: React.PropTypes.string,
},
render: function() {
return <div />;
},
});
var shallowRenderer = ReactTestUtils.createRenderer();
shallowRenderer.render(<SimpleComponent />);
var result = shallowRenderer.getRenderOutput();
expect(result).toEqual(<div />);
});
it('Test scryRenderedDOMComponentsWithClass with TextComponent', function() {
var renderedComponent = ReactTestUtils.renderIntoDocument(<div>Hello <span>Jim</span></div>);
var scryResults = ReactTestUtils.scryRenderedDOMComponentsWithClass(