diff --git a/src/renderers/shared/reconciler/__tests__/ReactComponentLifeCycle-test.js b/src/renderers/shared/reconciler/__tests__/ReactComponentLifeCycle-test.js
index 63069d8f84..0a5a6b2993 100644
--- a/src/renderers/shared/reconciler/__tests__/ReactComponentLifeCycle-test.js
+++ b/src/renderers/shared/reconciler/__tests__/ReactComponentLifeCycle-test.js
@@ -257,6 +257,32 @@ describe('ReactComponentLifeCycle', function() {
);
});
+ it('should correctly determine if a null component is mounted', function() {
+ spyOn(console, 'error');
+ var Component = React.createClass({
+ componentWillMount: function() {
+ expect(this.isMounted()).toBeFalsy();
+ },
+ componentDidMount: function() {
+ expect(this.isMounted()).toBeTruthy();
+ },
+ render: function() {
+ expect(this.isMounted()).toBeFalsy();
+ return null;
+ },
+ });
+
+ var element = ;
+
+ var instance = ReactTestUtils.renderIntoDocument(element);
+ expect(instance.isMounted()).toBeTruthy();
+
+ expect(console.error.argsForCall.length).toBe(1);
+ expect(console.error.argsForCall[0][0]).toContain(
+ 'Component is accessing isMounted inside its render()'
+ );
+ });
+
it('isMounted should return false when unmounted', function () {
var Component = React.createClass({
render: function() {
diff --git a/src/renderers/shared/reconciler/__tests__/ReactCompositeComponent-test.js b/src/renderers/shared/reconciler/__tests__/ReactCompositeComponent-test.js
index 8b4c1b8963..15a56b60da 100644
--- a/src/renderers/shared/reconciler/__tests__/ReactCompositeComponent-test.js
+++ b/src/renderers/shared/reconciler/__tests__/ReactCompositeComponent-test.js
@@ -286,11 +286,14 @@ describe('ReactCompositeComponent', function() {
var container = document.createElement('div');
document.body.appendChild(container);
+ var renders = 0;
+
var Component = React.createClass({
getInitialState: function() {
return {value: 0};
},
render: function() {
+ renders++;
return
;
},
});
@@ -299,12 +302,20 @@ describe('ReactCompositeComponent', function() {
expect(instance.setState).not.toBeDefined();
instance = React.render(instance, container);
+
+ expect(renders).toBe(1);
+
instance.setState({value: 1});
expect(console.error.calls.length).toBe(0);
+ expect(renders).toBe(2);
+
React.unmountComponentAtNode(container);
instance.setState({value: 2});
+
+ expect(renders).toBe(2);
+
expect(console.error.calls.length).toBe(1);
expect(console.error.argsForCall[0][0]).toBe(
'Warning: setState(...): Can only update a mounted or ' +