mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Merge pull request #3716 from graue/optional-shallow-render-context
Shallow render components that define contextTypes
This commit is contained in:
committed by
Paul O’Shannessy
parent
bd6e42fab4
commit
135499782e
@@ -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);
|
||||
|
||||
@@ -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