ReactShallowRenderer.render returns the rendered output
Simone Vittori committed
Nov 6, 2015 at 15:55 UTC
c8b8c818b568aaa38af68523ad942050cde3262b
2 files changed
+18
-25
src/test/ReactTestUtils.js
+10
-8
@@ -362,14 +362,6 @@ var ReactShallowRenderer = function() {
362
this._instance = null;
363
};
364
365
-ReactShallowRenderer.prototype.getRenderOutput = function() {
366
- return (
367
- (this._instance && this._instance._renderedComponent &&
368
- this._instance._renderedComponent._renderedOutput)
369
- || null
370
- );
371
-};
372
-
365
ReactShallowRenderer.prototype.getMountedInstance = function() {
366
return this._instance ? this._instance._instance : null;
367
};
@@ -435,6 +427,16 @@ ReactShallowRenderer.prototype.render = function(element, context) {
427
var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(true);
428
this._render(element, transaction, context);
429
ReactUpdates.ReactReconcileTransaction.release(transaction);
430
+
431
+ return this.getRenderOutput();
432
+};
433
+
434
+ReactShallowRenderer.prototype.getRenderOutput = function() {
435
+ return (
436
+ (this._instance && this._instance._renderedComponent &&
437
+ this._instance._renderedComponent._renderedOutput)
438
+ || null
439
+ );
440
};
441
442
ReactShallowRenderer.prototype.unmount = function() {
src/test/__tests__/ReactTestUtils-test.js
+8
-17
@@ -38,9 +38,7 @@ describe('ReactTestUtils', function() {
38
});
39
40
var shallowRenderer = ReactTestUtils.createRenderer();
41
- shallowRenderer.render(<SomeComponent />);
42
-
43
- var result = shallowRenderer.getRenderOutput();
41
+ var result = shallowRenderer.render(<SomeComponent />);
42
43
expect(result.type).toBe('div');
44
expect(result.props.children).toEqual([
@@ -95,9 +93,7 @@ describe('ReactTestUtils', function() {
93
});
94
95
var shallowRenderer = ReactTestUtils.createRenderer();
98
- shallowRenderer.render(<SomeComponent />);
99
-
100
- var result = shallowRenderer.getRenderOutput();
96
+ var result = shallowRenderer.render(<SomeComponent />);
97
98
expect(result).toBe(null);
99
});
@@ -148,16 +144,14 @@ describe('ReactTestUtils', function() {
144
});
145
146
var shallowRenderer = ReactTestUtils.createRenderer();
151
- shallowRenderer.render(<SomeComponent />);
152
- var result = shallowRenderer.getRenderOutput();
147
+ var result = shallowRenderer.render(<SomeComponent />);
148
expect(result.type).toBe('div');
149
expect(result.props.children).toEqual([
150
<span className="child1" />,
151
<span className="child2" />,
152
]);
153
159
- shallowRenderer.render(<SomeComponent aNew="prop" />);
160
- var updatedResult = shallowRenderer.getRenderOutput();
154
+ var updatedResult = shallowRenderer.render(<SomeComponent aNew="prop" />);
155
expect(updatedResult.type).toBe('a');
156
157
var mockEvent = {};
@@ -194,8 +188,7 @@ describe('ReactTestUtils', function() {
188
});
189
190
var shallowRenderer = ReactTestUtils.createRenderer();
197
- shallowRenderer.render(<SimpleComponent />);
198
- var result = shallowRenderer.getRenderOutput();
191
+ var result = shallowRenderer.render(<SimpleComponent />);
192
expect(result).toEqual(<div />);
193
});
194
@@ -210,10 +203,9 @@ describe('ReactTestUtils', function() {
203
});
204
205
var shallowRenderer = ReactTestUtils.createRenderer();
213
- shallowRenderer.render(<SimpleComponent />, {
206
+ var result = shallowRenderer.render(<SimpleComponent />, {
207
name: 'foo',
208
});
216
- var result = shallowRenderer.getRenderOutput();
209
expect(result).toEqual(<div>foo</div>);
210
});
211
@@ -229,7 +221,6 @@ describe('ReactTestUtils', function() {
221
'NonExistentClass'
222
);
223
expect(scryResults.length).toBe(0);
232
-
224
});
225
226
it('can scryRenderedDOMComponentsWithClass with className contains \\n', function() {
@@ -445,8 +436,8 @@ describe('ReactTestUtils', function() {
436
});
437
var handler = jasmine.createSpy('spy');
438
var shallowRenderer = ReactTestUtils.createRenderer();
448
- shallowRenderer.render(<SomeComponent handleClick={handler} />);
449
- var result = shallowRenderer.getRenderOutput();
439
+ var result = shallowRenderer.render(<SomeComponent handleClick={handler} />);
440
+
441
expect(() => ReactTestUtils.Simulate.click(result)).toThrow(
442
'TestUtils.Simulate expects a component instance and not a ReactElement.' +
443
'TestUtils.Simulate will not work if you are using shallow rendering.'