function deepRender(wrapper, target, adapter) {
  const node = wrapper[NODE];
  const element = node && adapter.nodeToElement(node);
  if (wrapper.type() === target) {
    return wrapper.dive();
  }
  if (element && isCustomComponentElement(element, adapter)) {
    return deepRender(wrapper.dive(), target, adapter);
  }
  const children = wrapper.children();
  for (let i = 0; i < children.length; i += 1) {
    const found = deepRender(children.at(i), target, adapter);
    if (typeof found !== 'undefined') {
      return found;
    }
  }
  return undefined;
}
function deepRender(wrapper, target, adapter) {
  const node = wrapper[NODE];
  const element = node && adapter.nodeToElement(node);
  if (wrapper.type() === target) {
    return wrapper.dive();
  }
  if (element && isCustomComponentElement(element, adapter)) {
    return deepRender(wrapper.dive(), target, adapter);
  }
  const children = wrapper.children();
  for (let i = 0; i < children.length; i += 1) {
    const found = deepRender(children.at(i), target, adapter);
    if (typeof found !== 'undefined') {
      return found;
    }
  }
  return undefined;
}
function deepRender ( wrapper , target , adapter ) { const node = wrapper [ NODE ] ; const element = node && adapter . nodeToElement ( node ) ; if ( wrapper . type ( ) === target ) { return wrapper . dive ( ) ; } if ( element && isCustomComponentElement ( element , adapter ) ) { return deepRender ( wrapper . dive ( ) , target , adapter ) ; } const children = wrapper . children ( ) ; for ( let i = 0 ; i < children . length ; i += 1 ) { const found = deepRender ( children . at ( i ) , target , adapter ) ; if ( typeof found !== 'undefined' ) { return found ; } } return undefined ; }
Recursively dive()s every custom component in a wrapper until
the target component is found.

@param {ShallowWrapper} wrapper A ShallowWrapper to search
@param {ComponentType} target A react custom component that, when found, will end recursion
@param {Adapter} adapter An Enzyme adapter
@returns {ShallowWrapper|undefined} A ShallowWrapper for the target, or
undefined if it can't be found
Recursively dive () s every custom component in a wrapper until the target component is found .
Deep render wrapper to target