We missed this because Flow wasn't being run properly on Travis but now that it is, it's clear that #7716 introduced a bunch of new Flow failures. Most of these shouldn't be too bad and I like to say "you break it you buy it" so this one is for you @Aweary :)

There were a couple other pre-existing Flow issues that @vjeux is going to fix, so mostly this should just be the TestRenderer issues.

componentInstance,
    options,
  ) {
  var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(options);
  var image = transaction.perform(
    mountComponentIntoNode,
    null,
    componentInstance,
    transaction,
  );
  ReactUpdates.ReactReconcileTransaction.release(transaction);
  return image;
}
var ReactTestInstance = function(component) {
  this._component = component;
};
ReactTestInstance.prototype.getInstance = function() {
  return this._component._renderedComponent.getPublicInstance();
};
ReactTestInstance.prototype.update = function(nextElement) {
  invariant(
    this._component,
    "ReactTestRenderer: .update() can't be called after unmount."
  );
  var nextWrappedElement = React.createElement(
    TopLevelWrapper,
    { child: nextElement }
  );
  var component = this._component;
  ReactUpdates.batchedUpdates(function() {