title: simulate('scroll') on a div inside a React component returns `AssertionError: expected false to be true`
body: <p>I have a React component I'm writing some tests for. I'd like to test that when a <code>div</code> in the component is scrolled it triggers the function listening for that event, <code>onScroll</code>. Unfortunately Enzyme's <code>simulate('click')</code> doesn't seem to call my <code>spy</code> function, as I'd expect.</p>
  
  <h2>My component</h2>
  
  <pre><code>import React from 'react';
  import ReactDOM from 'react-dom';
  import jQuery from 'jquery';
  const $ = jQuery;
  
  class MyComponent extends React.Component {
    constructor(props) {
      super(props);
  
      this.handleScroll = this.handleScroll.bind(this);
    }
  
    handleScroll(event) {
      return true;
    }
  
    render() {
      return(
        &lt;div className="my-component" onScroll={this.handleScroll}&gt;
          &lt;h1&gt;Hello world&lt;/h1&gt;
        &lt;/div&gt;
      );
    }
  }
  
  export default MyComponent;
  </code></pre>
  
  <h2>My Test</h2>
  
  <pre><code>import { expect } from 'chai';
  import { shallow, mount, render } from 'enzyme';
  import { spy } from 'sinon';
  import jsdom from 'jsdom';;
  
  import React from 'react';
  import ReactDOM from 'react-dom';
  import ReactTestUtils from 'react-addons-test-utils';
  import MyComponent from '../views/components/my-component';
  
  describe("&lt;MyComponent /&gt;", () =&gt; {
    it('should trigger pagination when div.search-box scrolls', () =&gt; {
      const component = mount(&lt;MyComponent /&gt;);
      const handleScrollSpy = spy(component.node, 'handleScroll');
      component
        .find('.my-component')
        .simulate('scroll')
  
      expect(handleScrollSpy.called).to.be.true;
    });
  });
  </code></pre>
  
  <p>This returns: <code>AssertionError: expected false to be true</code></p>
  
  <p>I've tried calling the function within the test and it cause the <code>callCount</code> to be <code>1</code>…</p>
  
  <pre><code>component.node.handleScroll();
  console.log("Call count: ", handleScrollSpy.callCount);
  </code></pre>
  
  <p>This makes me think the problem with my test is to do with the <code>simulate</code> part…</p>
  
  <pre><code>component
        .find('.search-box')
        .simulate('click')
  </code></pre>
  
  <p>Can someone confirm for me if i'm approaching this correctly or if i'm indeed doing something wrong, please?</p>
  
  <p>Thanks.</p>
  
  <hr>
  
  <h3>Edit</h3>
  
  <p>Further reading of the Enzyme <code>.simulate</code> docs revealed the following:</p>
  
  <blockquote>
    <p>Even though the name would imply this simulates an actual event,
    .simulate() will in fact target the component's prop based on the
    event you give it. For example, .simulate('click') will actually get
    the onClick prop and call it.</p>
  </blockquote>
  
  <p>I wonder if it's because i'm not passing the <code>onScroll</code> as a prop that the <code>.simulate</code> isn't triggering the <code>handleScroll</code> function at the moment.</p>