diff --git a/src/test/ReactTestUtils.js b/src/test/ReactTestUtils.js
index 9784cb9034..121b434bac 100644
--- a/src/test/ReactTestUtils.js
+++ b/src/test/ReactTestUtils.js
@@ -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);
diff --git a/src/test/__tests__/ReactTestUtils-test.js b/src/test/__tests__/ReactTestUtils-test.js
index c3e365a413..953c925a39 100644
--- a/src/test/__tests__/ReactTestUtils-test.js
+++ b/src/test/__tests__/ReactTestUtils-test.js
@@ -46,7 +46,7 @@ describe('ReactTestUtils', function() {
});
var shallowRenderer = ReactTestUtils.createRenderer();
- shallowRenderer.render(, {});
+ shallowRenderer.render();
var result = shallowRenderer.getRenderOutput();
@@ -68,7 +68,7 @@ describe('ReactTestUtils', function() {
});
var shallowRenderer = ReactTestUtils.createRenderer();
- shallowRenderer.render(, {});
+ shallowRenderer.render();
shallowRenderer.unmount();
expect(componentWillUnmount).toBeCalled();
@@ -82,7 +82,7 @@ describe('ReactTestUtils', function() {
});
var shallowRenderer = ReactTestUtils.createRenderer();
- shallowRenderer.render(, {});
+ shallowRenderer.render();
var result = shallowRenderer.getRenderOutput();
@@ -123,7 +123,7 @@ describe('ReactTestUtils', function() {
});
var shallowRenderer = ReactTestUtils.createRenderer();
- shallowRenderer.render(, {});
+ shallowRenderer.render();
var result = shallowRenderer.getRenderOutput();
expect(result.type).toBe('div');
expect(result.props.children).toEqual([
@@ -131,7 +131,7 @@ describe('ReactTestUtils', function() {
]);
- shallowRenderer.render(, {});
+ shallowRenderer.render();
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
;
+ },
+ });
+
+ var shallowRenderer = ReactTestUtils.createRenderer();
+ shallowRenderer.render();
+ var result = shallowRenderer.getRenderOutput();
+ expect(result).toEqual();
+ });
+
it('Test scryRenderedDOMComponentsWithClass with TextComponent', function() {
var renderedComponent = ReactTestUtils.renderIntoDocument(Hello Jim
);
var scryResults = ReactTestUtils.scryRenderedDOMComponentsWithClass(