mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Shallow render components that define contextTypes
You now no longer have to pass an undocumented extra argument to the shallow renderer for rendering components with contextTypes to work. Fixes #3696
This commit is contained in:
@@ -26,6 +26,7 @@ var ReactUpdates = require('ReactUpdates');
|
||||
var SyntheticEvent = require('SyntheticEvent');
|
||||
|
||||
var assign = require('Object.assign');
|
||||
var emptyObject = require('emptyObject');
|
||||
var findDOMNode = require('findDOMNode');
|
||||
|
||||
var topLevelTypes = EventConstants.topLevelTypes;
|
||||
@@ -369,6 +370,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);
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user