diff --git a/src/test/ReactTestUtils.js b/src/test/ReactTestUtils.js index feb4301e314a6..d5323f6267c71 100644 --- a/src/test/ReactTestUtils.js +++ b/src/test/ReactTestUtils.js @@ -362,14 +362,6 @@ var ReactShallowRenderer = function() { this._instance = null; }; -ReactShallowRenderer.prototype.getRenderOutput = function() { - return ( - (this._instance && this._instance._renderedComponent && - this._instance._renderedComponent._renderedOutput) - || null - ); -}; - ReactShallowRenderer.prototype.getMountedInstance = function() { return this._instance ? this._instance._instance : null; }; @@ -435,6 +427,16 @@ ReactShallowRenderer.prototype.render = function(element, context) { var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(true); this._render(element, transaction, context); ReactUpdates.ReactReconcileTransaction.release(transaction); + + return this.getRenderOutput(); +}; + +ReactShallowRenderer.prototype.getRenderOutput = function() { + return ( + (this._instance && this._instance._renderedComponent && + this._instance._renderedComponent._renderedOutput) + || null + ); }; ReactShallowRenderer.prototype.unmount = function() { diff --git a/src/test/__tests__/ReactTestUtils-test.js b/src/test/__tests__/ReactTestUtils-test.js index 2458036198ca4..0e2d15b5b5c28 100644 --- a/src/test/__tests__/ReactTestUtils-test.js +++ b/src/test/__tests__/ReactTestUtils-test.js @@ -38,9 +38,7 @@ describe('ReactTestUtils', function() { }); var shallowRenderer = ReactTestUtils.createRenderer(); - shallowRenderer.render(); - - var result = shallowRenderer.getRenderOutput(); + var result = shallowRenderer.render(); expect(result.type).toBe('div'); expect(result.props.children).toEqual([ @@ -95,9 +93,7 @@ describe('ReactTestUtils', function() { }); var shallowRenderer = ReactTestUtils.createRenderer(); - shallowRenderer.render(); - - var result = shallowRenderer.getRenderOutput(); + var result = shallowRenderer.render(); expect(result).toBe(null); }); @@ -148,16 +144,14 @@ describe('ReactTestUtils', function() { }); var shallowRenderer = ReactTestUtils.createRenderer(); - shallowRenderer.render(); - var result = shallowRenderer.getRenderOutput(); + var result = shallowRenderer.render(); expect(result.type).toBe('div'); expect(result.props.children).toEqual([ , , ]); - shallowRenderer.render(); - var updatedResult = shallowRenderer.getRenderOutput(); + var updatedResult = shallowRenderer.render(); expect(updatedResult.type).toBe('a'); var mockEvent = {}; @@ -194,8 +188,7 @@ describe('ReactTestUtils', function() { }); var shallowRenderer = ReactTestUtils.createRenderer(); - shallowRenderer.render(); - var result = shallowRenderer.getRenderOutput(); + var result = shallowRenderer.render(); expect(result).toEqual(
); }); @@ -210,10 +203,9 @@ describe('ReactTestUtils', function() { }); var shallowRenderer = ReactTestUtils.createRenderer(); - shallowRenderer.render(, { + var result = shallowRenderer.render(, { name: 'foo', }); - var result = shallowRenderer.getRenderOutput(); expect(result).toEqual(
foo
); }); @@ -229,7 +221,6 @@ describe('ReactTestUtils', function() { 'NonExistentClass' ); expect(scryResults.length).toBe(0); - }); it('can scryRenderedDOMComponentsWithClass with className contains \\n', function() { @@ -445,8 +436,8 @@ describe('ReactTestUtils', function() { }); var handler = jasmine.createSpy('spy'); var shallowRenderer = ReactTestUtils.createRenderer(); - shallowRenderer.render(); - var result = shallowRenderer.getRenderOutput(); + var result = shallowRenderer.render(); + expect(() => ReactTestUtils.Simulate.click(result)).toThrow( 'TestUtils.Simulate expects a component instance and not a ReactElement.' + 'TestUtils.Simulate will not work if you are using shallow rendering.'