@samitouri / QOS-React-2 / commits / f00d45d65f

Fix shallow renderer with ref as function

Sławomir Laskowski committed Oct 30, 2015 at 00:23 UTC f00d45d65f27f2b719c9b48f972f4ae015ada7dd
2 files changed +28
src/test/ReactTestUtils.js
+3
@@ -396,6 +396,9 @@ NoopInternalComponent.prototype = {
396 unmountComponent: function() {
397 },
398
399 + getPublicInstance: function() {
400 + return null;
401 + },
402 };
403
404 var ShallowComponentWrapper = function() { };
src/test/__tests__/ReactTestUtils-test.js
+25
@@ -191,6 +191,31 @@ describe('ReactTestUtils', function() {
191 expect(result).toEqual(<div />);
192 });
193
194 + it('can shallowly render components with ref as function', function() {
195 + var SimpleComponent = React.createClass({
196 + getInitialState: function() {
197 + return {clicked: false};
198 + },
199 + handleUserClick: function() {
200 + this.setState({ clicked: true });
201 + },
202 + render: function() {
203 + return <div ref={() => {}} onClick={this.handleUserClick} className={this.state.clicked ? 'clicked' : ''}></div>;
204 + },
205 + });
206 +
207 + var shallowRenderer = ReactTestUtils.createRenderer();
208 + shallowRenderer.render(<SimpleComponent />);
209 + var result = shallowRenderer.getRenderOutput();
210 + expect(result.type).toEqual('div');
211 + expect(result.props.className).toEqual('');
212 + result.props.onClick();
213 +
214 + result = shallowRenderer.getRenderOutput();
215 + expect(result.type).toEqual('div');
216 + expect(result.props.className).toEqual('clicked');
217 + });
218 +
219 it('can pass context when shallowly rendering', function() {
220 var SimpleComponent = React.createClass({
221 contextTypes: {