`SyntheticEvent.type` is undefined when received by the handler. Or the nativeEvent type for that matter.

Needs to be added in here somewhere: https://github.com/facebook/react/blob/3a4e1dbb5b2957875cab6af11a5e5934e125a0d8/src/test/ReactTestUtils.js#L496

I realize that it's not sustainable to have to set _all_ the possible fields for a simulated event, but the type at least makes sense for verification that you're getting the right _sort_ of event.

var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(true);
  renderer._render(element, transaction, context);
  ReactUpdates.ReactReconcileTransaction.release(transaction);
}
ReactShallowRenderer.prototype.getRenderOutput = function() {
  return (
    (this._instance && this._instance._renderedComponent &&
     this._instance._renderedComponent._renderedOutput)
    || null
  );
};
ReactShallowRenderer.prototype.unmount = function() {
  if (this._instance) {
    ReactReconciler.unmountComponent(this._instance, false);
  }
};
ReactShallowRenderer.prototype._render = function(element, transaction, context) {
  if (this._instance) {
    ReactReconciler.receiveComponent(
      this._instance,
      element,
      transaction,
      context
    );
  } else {
    var instance = new ShallowComponentWrapper(element);
    ReactReconciler.mountComponent(instance, transaction, null, null, context);
    this._instance = instance;