diff --git a/src/core/ReactUpdateQueue.js b/src/core/ReactUpdateQueue.js index 7562fea8cf..ec1ac00f9e 100644 --- a/src/core/ReactUpdateQueue.js +++ b/src/core/ReactUpdateQueue.js @@ -111,6 +111,7 @@ var ReactUpdateQueue = { } else { internalInstance._pendingCallbacks = [callback]; } + enqueueUpdate(internalInstance); }, /** diff --git a/src/core/__tests__/ReactComponent-test.js b/src/core/__tests__/ReactComponent-test.js index 350f369306..c09376a27f 100644 --- a/src/core/__tests__/ReactComponent-test.js +++ b/src/core/__tests__/ReactComponent-test.js @@ -15,10 +15,12 @@ var React; var ReactInstanceMap; var ReactTestUtils; +var mocks; var reactComponentExpect; describe('ReactComponent', function() { beforeEach(function() { + mocks = require('mocks'); React = require('React'); ReactInstanceMap = require('ReactInstanceMap'); ReactTestUtils = require('ReactTestUtils'); @@ -270,4 +272,16 @@ describe('ReactComponent', function() { var instance = ReactTestUtils.renderIntoDocument(element); expect(instance.isMounted()).toBeTruthy(); }); + + it('fires the callback after a component is rendered', function() { + var callback = mocks.getMockFunction(); + var container = document.createElement('div'); + React.render(
, container, callback); + expect(callback.mock.calls.length).toBe(1); + React.render(
, container, callback); + expect(callback.mock.calls.length).toBe(2); + React.render(, container, callback); + expect(callback.mock.calls.length).toBe(3); + }); + });