I'm having trouble testing a form submit event using React, TestUtils and Jest.
I have a component that renders a <form> DOM element; the same component also has a method that handles the onSubmit event and logs a statement. My goal is to mock the onSubmit handler and assert that it is called.
form-component.cjsx
module.exports = React.createClass
  # Handle form submissions
  handleSubmit: (e) ->
    console.log 'Make async call'
  # Render a form
  render: ->
    <form onSubmit={@handleSubmit}>
      <input type="submit" />
    </form>
__tests__/test-form-component.coffee
jest
  .dontMock '../form-component'
React = require 'react/addons'
TestUtils = React.addons.TestUtils
FormComponent = require '../form-component'
describe 'FormComponent', ->
  it 'creates a log statement upon form submission', ->
    # Render a FormComponent into the dom
    formInstance = TestUtils.renderIntoDocument(<FormComponent />)
    # Mock the `handleSubmit` method
    formInstance.handleSubmit = jest.genMockFunction()
    # Simulate a `submit` event on the form
    TestUtils.Simulate.submit(formInstance)
    # TestUtils.Simulate.submit(formInstance.getDOMNode()) ???
    # I would have expected the mocked function to have been called
    # What gives?!
    expect(formInstance.handleSubmit).toBeCalled()
Related Questions:
 
     
     
    