{"version":3,"file":"ReactSixteenAdapter.js","names":["is164","TestUtils","Simulate","touchStart","is165","auxClick","is166","React","unstable_AsyncMode","is168","act","hasShouldComponentUpdateBug","semver","satisfies","testRendererVersion","FiberTags","nodeAndSiblingsArray","nodeWithSibling","array","node","push","sibling","flatten","arr","result","stack","i","length","n","pop","el","Array","isArray","nodeTypeFromType","type","Portal","utilNodeTypeFromType","isMemo","compareNodeTypeOf","Memo","isLazy","Lazy","unmemoType","transformSuspense","renderedEl","prerenderEl","suspenseFallback","isSuspense","children","props","fallback","replaceLazyWithFallback","propTypes","defaultProps","contextTypes","contextType","childContextTypes","FakeSuspense","isStateful","createElement","elementToTree","isPortal","utilElementToTree","containerInfo","nodeType","key","ensureKeyOrUndefined","ref","instance","rendered","toTree","vnode","findCurrentFiberUsingSlowPath","tag","HostRoot","childrenToTree","child","HostPortal","stateNode","memoizedProps","ClassComponent","FunctionalComponent","MemoClass","elementType","MemoSFC","renderedNodes","map","HostComponent","HostText","Fragment","Mode","ContextProvider","ContextConsumer","Profiler","ForwardRef","pendingProps","Suspense","Error","nodeToHostNode","_node","mapper","item","ReactDOM","findDOMNode","eventOptions","animation","pointerEvents","getEmptyStateValue","EmptyState","Component","testRenderer","ShallowRenderer","render","_instance","state","wrapAct","fn","returnVal","getProviderDefaultValue","Provider","_context","_defaultValue","_currentValue","makeFakeElement","$$typeof","Element","prototype","isReactComponent","__reactAutoBindPairs","ReactSixteenAdapter","lifecycles","options","enableComponentDidUpdateOnSetState","legacyContextMode","componentDidUpdate","onSetState","getDerivedStateFromProps","getSnapshotBeforeUpdate","setState","skipsComponentDidUpdateOnNullish","getChildContext","calledByRenderer","getDerivedStateFromError","assertDomAvailable","has","TypeError","detectFiberTags","attachTo","hydrateIn","wrappingComponentProps","domNode","global","document","adapter","context","callback","wrapperProps","refProp","ReactWrapperComponent","createMountWrapper","wrappedEl","hydrate","setChildProps","unmount","unmountComponentAtNode","getNode","getNodeFromRootFinder","isCustomComponent","_reactInternalFiber","simulateError","nodeHierarchy","rootNode","error","isErrorBoundary","elInstance","componentDidCatch","find","catchingInstance","catchingType","displayNameOfNode","bind","undefined","simulateEvent","event","mock","mappedEvent","mapNativeEventNames","eventFn","batchedUpdates","getWrappingComponentRenderer","getWrappingComponentMountRenderer","inst","getMountWrapperInstance","wrapInvoke","renderer","isDOM","cachedNode","lastComponent","wrappedComponent","sentinel","wrapPureComponent","compare","RangeError","shouldComponentUpdate","nextProps","isPureReactComponent","memoized","prevProps","shouldUpdate","shallowEqual","args","displayName","wrapFunctionalComponent","renderElement","elConfig","rest","typeIsExisted","clonedEl","elementIsChanged","unmaskedContext","providerValues","Map","isContextProvider","set","value","MockProvider","withSetStateAllowed","isContextConsumer","getProviderFromConsumer","get","MockConsumer","getMaskedContext","InnerComp","isComponentStateful","spyMethod","originalMethod","_updateClassComponent","clonedProps","apply","restore","emptyStateValue","Object","defineProperty","configurable","enumerable","writable","output","getRenderOutput","concat","handler","propFromEvent","checkPropTypes","typeSpecs","values","location","hierarchy","getComponentStack","ContextWrapper","createRenderWrapper","ReactDOMServer","renderToStaticMarkup","mode","EnzymeAdapter","MODES","MOUNT","createMountRenderer","SHALLOW","createShallowRenderer","STRING","createStringRenderer","element","wrap","propsWithKeysAndRef","matchingType","supportsArray","nodes","ConcurrentMode","AsyncMode","NaN","StrictMode","$$typeofType","nodeName","name","isElement","object","isValidElementType","fragment","typeOfNode","fakeElement","isForwardRef","isValidElement","Consumer","RootFinder","wrapWithWrappingComponent"],"sources":["../src/ReactSixteenAdapter.js"],"sourcesContent":["/* eslint no-use-before-define: 0 */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n// eslint-disable-next-line import/no-unresolved\nimport ReactDOMServer from 'react-dom/server';\n// eslint-disable-next-line import/no-unresolved\nimport ShallowRenderer from 'react-test-renderer/shallow';\nimport { version as testRendererVersion } from 'react-test-renderer/package.json';\n// eslint-disable-next-line import/no-unresolved\nimport TestUtils from 'react-dom/test-utils';\nimport semver from 'semver';\nimport checkPropTypes from 'prop-types/checkPropTypes';\nimport has from 'has';\nimport {\n AsyncMode,\n ConcurrentMode,\n ContextConsumer,\n ContextProvider,\n Element,\n ForwardRef,\n Fragment,\n isContextConsumer,\n isContextProvider,\n isElement,\n isForwardRef,\n isPortal,\n isSuspense,\n isValidElementType,\n Lazy,\n Memo,\n Portal,\n Profiler,\n StrictMode,\n Suspense,\n} from 'react-is';\nimport { EnzymeAdapter } from 'enzyme';\nimport { typeOfNode } from 'enzyme/build/Utils';\nimport shallowEqual from 'enzyme-shallow-equal';\nimport {\n displayNameOfNode,\n elementToTree as utilElementToTree,\n nodeTypeFromType as utilNodeTypeFromType,\n mapNativeEventNames,\n propFromEvent,\n assertDomAvailable,\n withSetStateAllowed,\n createRenderWrapper,\n createMountWrapper,\n propsWithKeysAndRef,\n ensureKeyOrUndefined,\n simulateError,\n wrap,\n getMaskedContext,\n getComponentStack,\n RootFinder,\n getNodeFromRootFinder,\n wrapWithWrappingComponent,\n getWrappingComponentMountRenderer,\n compareNodeTypeOf,\n spyMethod,\n} from 'enzyme-adapter-utils';\nimport findCurrentFiberUsingSlowPath from './findCurrentFiberUsingSlowPath';\nimport detectFiberTags from './detectFiberTags';\n\nconst is164 = !!TestUtils.Simulate.touchStart; // 16.4+\nconst is165 = !!TestUtils.Simulate.auxClick; // 16.5+\nconst is166 = is165 && !React.unstable_AsyncMode; // 16.6+\nconst is168 = is166 && typeof TestUtils.act === 'function';\n\nconst hasShouldComponentUpdateBug = semver.satisfies(testRendererVersion, '< 16.8');\n\n// Lazily populated if DOM is available.\nlet FiberTags = null;\n\nfunction nodeAndSiblingsArray(nodeWithSibling) {\n const array = [];\n let node = nodeWithSibling;\n while (node != null) {\n array.push(node);\n node = node.sibling;\n }\n return array;\n}\n\nfunction flatten(arr) {\n const result = [];\n const stack = [{ i: 0, array: arr }];\n while (stack.length) {\n const n = stack.pop();\n while (n.i < n.array.length) {\n const el = n.array[n.i];\n n.i += 1;\n if (Array.isArray(el)) {\n stack.push(n);\n stack.push({ i: 0, array: el });\n break;\n }\n result.push(el);\n }\n }\n return result;\n}\n\nfunction nodeTypeFromType(type) {\n if (type === Portal) {\n return 'portal';\n }\n\n return utilNodeTypeFromType(type);\n}\n\nfunction isMemo(type) {\n return compareNodeTypeOf(type, Memo);\n}\n\nfunction isLazy(type) {\n return compareNodeTypeOf(type, Lazy);\n}\n\nfunction unmemoType(type) {\n return isMemo(type) ? type.type : type;\n}\n\nfunction transformSuspense(renderedEl, prerenderEl, { suspenseFallback }) {\n if (!isSuspense(renderedEl)) {\n return renderedEl;\n }\n\n let { children } = renderedEl.props;\n\n if (suspenseFallback) {\n const { fallback } = renderedEl.props;\n children = replaceLazyWithFallback(children, fallback);\n }\n\n const {\n propTypes,\n defaultProps,\n contextTypes,\n contextType,\n childContextTypes,\n } = renderedEl.type;\n\n const FakeSuspense = Object.assign(\n isStateful(prerenderEl.type)\n ? class FakeSuspense extends prerenderEl.type {\n render() {\n const { type, props } = prerenderEl;\n return React.createElement(\n type,\n { ...props, ...this.props },\n children,\n );\n }\n }\n : function FakeSuspense(props) { // eslint-disable-line prefer-arrow-callback\n return React.createElement(\n renderedEl.type,\n { ...renderedEl.props, ...props },\n children,\n );\n },\n {\n propTypes,\n defaultProps,\n contextTypes,\n contextType,\n childContextTypes,\n },\n );\n return React.createElement(FakeSuspense, null, children);\n}\n\nfunction elementToTree(el) {\n if (!isPortal(el)) {\n return utilElementToTree(el, elementToTree);\n }\n\n const { children, containerInfo } = el;\n const props = { children, containerInfo };\n\n return {\n nodeType: 'portal',\n type: Portal,\n props,\n key: ensureKeyOrUndefined(el.key),\n ref: el.ref || null,\n instance: null,\n rendered: elementToTree(el.children),\n };\n}\n\nfunction toTree(vnode) {\n if (vnode == null) {\n return null;\n }\n // TODO(lmr): I'm not really sure I understand whether or not this is what\n // i should be doing, or if this is a hack for something i'm doing wrong\n // somewhere else. Should talk to sebastian about this perhaps\n const node = findCurrentFiberUsingSlowPath(vnode);\n switch (node.tag) {\n case FiberTags.HostRoot:\n return childrenToTree(node.child);\n case FiberTags.HostPortal: {\n const {\n stateNode: { containerInfo },\n memoizedProps: children,\n } = node;\n const props = { containerInfo, children };\n return {\n nodeType: 'portal',\n type: Portal,\n props,\n key: ensureKeyOrUndefined(node.key),\n ref: node.ref,\n instance: null,\n rendered: childrenToTree(node.child),\n };\n }\n case FiberTags.ClassComponent:\n return {\n nodeType: 'class',\n type: node.type,\n props: { ...node.memoizedProps },\n key: ensureKeyOrUndefined(node.key),\n ref: node.ref,\n instance: node.stateNode,\n rendered: childrenToTree(node.child),\n };\n case FiberTags.FunctionalComponent:\n return {\n nodeType: 'function',\n type: node.type,\n props: { ...node.memoizedProps },\n key: ensureKeyOrUndefined(node.key),\n ref: node.ref,\n instance: null,\n rendered: childrenToTree(node.child),\n };\n case FiberTags.MemoClass:\n return {\n nodeType: 'class',\n type: node.elementType.type,\n props: { ...node.memoizedProps },\n key: ensureKeyOrUndefined(node.key),\n ref: node.ref,\n instance: node.stateNode,\n rendered: childrenToTree(node.child.child),\n };\n case FiberTags.MemoSFC: {\n let renderedNodes = flatten(nodeAndSiblingsArray(node.child).map(toTree));\n if (renderedNodes.length === 0) {\n renderedNodes = childrenToTree(node.memoizedProps.children);\n }\n return {\n nodeType: 'function',\n type: node.elementType,\n props: { ...node.memoizedProps },\n key: ensureKeyOrUndefined(node.key),\n ref: node.ref,\n instance: null,\n rendered: renderedNodes,\n };\n }\n case FiberTags.HostComponent: {\n let renderedNodes = flatten(nodeAndSiblingsArray(node.child).map(toTree));\n if (renderedNodes.length === 0) {\n renderedNodes = [node.memoizedProps.children];\n }\n return {\n nodeType: 'host',\n type: node.type,\n props: { ...node.memoizedProps },\n key: ensureKeyOrUndefined(node.key),\n ref: node.ref,\n instance: node.stateNode,\n rendered: renderedNodes,\n };\n }\n case FiberTags.HostText:\n return node.memoizedProps;\n case FiberTags.Fragment:\n case FiberTags.Mode:\n case FiberTags.ContextProvider:\n case FiberTags.ContextConsumer:\n return childrenToTree(node.child);\n case FiberTags.Profiler:\n case FiberTags.ForwardRef: {\n return {\n nodeType: 'function',\n type: node.type,\n props: { ...node.pendingProps },\n key: ensureKeyOrUndefined(node.key),\n ref: node.ref,\n instance: null,\n rendered: childrenToTree(node.child),\n };\n }\n case FiberTags.Suspense: {\n return {\n nodeType: 'function',\n type: Suspense,\n props: { ...node.memoizedProps },\n key: ensureKeyOrUndefined(node.key),\n ref: node.ref,\n instance: null,\n rendered: childrenToTree(node.child),\n };\n }\n case FiberTags.Lazy:\n return childrenToTree(node.child);\n default:\n throw new Error(`Enzyme Internal Error: unknown node with tag ${node.tag}`);\n }\n}\n\nfunction childrenToTree(node) {\n if (!node) {\n return null;\n }\n const children = nodeAndSiblingsArray(node);\n if (children.length === 0) {\n return null;\n }\n if (children.length === 1) {\n return toTree(children[0]);\n }\n return flatten(children.map(toTree));\n}\n\nfunction nodeToHostNode(_node) {\n // NOTE(lmr): node could be a function component\n // which wont have an instance prop, but we can get the\n // host node associated with its return value at that point.\n // Although this breaks down if the return value is an array,\n // as is possible with React 16.\n let node = _node;\n while (node && !Array.isArray(node) && node.instance === null) {\n node = node.rendered;\n }\n // if the SFC returned null effectively, there is no host node.\n if (!node) {\n return null;\n }\n\n const mapper = (item) => {\n if (item && item.instance) return ReactDOM.findDOMNode(item.instance);\n return null;\n };\n if (Array.isArray(node)) {\n return node.map(mapper);\n }\n if (Array.isArray(node.rendered) && node.nodeType === 'class') {\n return node.rendered.map(mapper);\n }\n return mapper(node);\n}\n\nfunction replaceLazyWithFallback(node, fallback) {\n if (!node) {\n return null;\n }\n if (Array.isArray(node)) {\n return node.map((el) => replaceLazyWithFallback(el, fallback));\n }\n if (isLazy(node.type)) {\n return fallback;\n }\n return {\n ...node,\n props: {\n ...node.props,\n children: replaceLazyWithFallback(node.props.children, fallback),\n },\n };\n}\n\nconst eventOptions = {\n animation: true,\n pointerEvents: is164,\n auxClick: is165,\n};\n\nfunction getEmptyStateValue() {\n // this handles a bug in React 16.0 - 16.2\n // see https://github.com/facebook/react/commit/39be83565c65f9c522150e52375167568a2a1459\n // also see https://github.com/facebook/react/pull/11965\n\n // eslint-disable-next-line react/prefer-stateless-function\n class EmptyState extends React.Component {\n render() {\n return null;\n }\n }\n const testRenderer = new ShallowRenderer();\n testRenderer.render(React.createElement(EmptyState));\n return testRenderer._instance.state;\n}\n\nfunction wrapAct(fn) {\n if (!is168) {\n return fn();\n }\n let returnVal;\n TestUtils.act(() => { returnVal = fn(); });\n return returnVal;\n}\n\nfunction getProviderDefaultValue(Provider) {\n // React stores references to the Provider's defaultValue differently across versions.\n if ('_defaultValue' in Provider._context) {\n return Provider._context._defaultValue;\n }\n if ('_currentValue' in Provider._context) {\n return Provider._context._currentValue;\n }\n throw new Error('Enzyme Internal Error: can’t figure out how to get Provider’s default value');\n}\n\nfunction makeFakeElement(type) {\n return { $$typeof: Element, type };\n}\n\nfunction isStateful(Component) {\n return Component.prototype && (\n Component.prototype.isReactComponent\n || Array.isArray(Component.__reactAutoBindPairs) // fallback for createClass components\n );\n}\n\nclass ReactSixteenAdapter extends EnzymeAdapter {\n constructor() {\n super();\n const { lifecycles } = this.options;\n this.options = {\n ...this.options,\n enableComponentDidUpdateOnSetState: true, // TODO: remove, semver-major\n legacyContextMode: 'parent',\n lifecycles: {\n ...lifecycles,\n componentDidUpdate: {\n onSetState: true,\n },\n getDerivedStateFromProps: {\n hasShouldComponentUpdateBug,\n },\n getSnapshotBeforeUpdate: true,\n setState: {\n skipsComponentDidUpdateOnNullish: true,\n },\n getChildContext: {\n calledByRenderer: false,\n },\n getDerivedStateFromError: is166,\n },\n };\n }\n\n createMountRenderer(options) {\n assertDomAvailable('mount');\n if (has(options, 'suspenseFallback')) {\n throw new TypeError('`suspenseFallback` is not supported by the `mount` renderer');\n }\n if (FiberTags === null) {\n // Requires DOM.\n FiberTags = detectFiberTags();\n }\n const { attachTo, hydrateIn, wrappingComponentProps } = options;\n const domNode = hydrateIn || attachTo || global.document.createElement('div');\n let instance = null;\n const adapter = this;\n return {\n render(el, context, callback) {\n return wrapAct(() => {\n if (instance === null) {\n const { type, props, ref } = el;\n const wrapperProps = {\n Component: type,\n props,\n wrappingComponentProps,\n context,\n ...(ref && { refProp: ref }),\n };\n const ReactWrapperComponent = createMountWrapper(el, { ...options, adapter });\n const wrappedEl = React.createElement(ReactWrapperComponent, wrapperProps);\n instance = hydrateIn\n ? ReactDOM.hydrate(wrappedEl, domNode)\n : ReactDOM.render(wrappedEl, domNode);\n if (typeof callback === 'function') {\n callback();\n }\n } else {\n instance.setChildProps(el.props, context, callback);\n }\n });\n },\n unmount() {\n ReactDOM.unmountComponentAtNode(domNode);\n instance = null;\n },\n getNode() {\n if (!instance) {\n return null;\n }\n return getNodeFromRootFinder(\n adapter.isCustomComponent,\n toTree(instance._reactInternalFiber),\n options,\n );\n },\n simulateError(nodeHierarchy, rootNode, error) {\n const isErrorBoundary = ({ instance: elInstance, type }) => {\n if (is166 && type && type.getDerivedStateFromError) {\n return true;\n }\n return elInstance && elInstance.componentDidCatch;\n };\n\n const {\n instance: catchingInstance,\n type: catchingType,\n } = nodeHierarchy.find(isErrorBoundary) || {};\n\n simulateError(\n error,\n catchingInstance,\n rootNode,\n nodeHierarchy,\n nodeTypeFromType,\n adapter.displayNameOfNode.bind(adapter),\n is166 ? catchingType : undefined,\n );\n },\n simulateEvent(node, event, mock) {\n const mappedEvent = mapNativeEventNames(event, eventOptions);\n const eventFn = TestUtils.Simulate[mappedEvent];\n if (!eventFn) {\n throw new TypeError(`ReactWrapper::simulate() event '${event}' does not exist`);\n }\n wrapAct(() => {\n eventFn(adapter.nodeToHostNode(node), mock);\n });\n },\n batchedUpdates(fn) {\n return fn();\n // return ReactDOM.unstable_batchedUpdates(fn);\n },\n getWrappingComponentRenderer() {\n return {\n ...this,\n ...getWrappingComponentMountRenderer({\n toTree: (inst) => toTree(inst._reactInternalFiber),\n getMountWrapperInstance: () => instance,\n }),\n };\n },\n ...(is168 && { wrapInvoke: wrapAct }),\n };\n }\n\n createShallowRenderer(options = {}) {\n const adapter = this;\n const renderer = new ShallowRenderer();\n const { suspenseFallback } = options;\n if (typeof suspenseFallback !== 'undefined' && typeof suspenseFallback !== 'boolean') {\n throw TypeError('`options.suspenseFallback` should be boolean or undefined');\n }\n let isDOM = false;\n let cachedNode = null;\n\n let lastComponent = null;\n let wrappedComponent = null;\n const sentinel = {};\n\n // wrap memo components with a PureComponent, or a class component with sCU\n const wrapPureComponent = (Component, compare) => {\n if (!is166) {\n throw new RangeError('this function should not be called in React < 16.6. Please report this!');\n }\n if (lastComponent !== Component) {\n if (isStateful(Component)) {\n wrappedComponent = class extends Component {}; // eslint-disable-line react/prefer-stateless-function\n if (compare) {\n wrappedComponent.prototype.shouldComponentUpdate = (nextProps) => !compare(this.props, nextProps);\n } else {\n wrappedComponent.prototype.isPureReactComponent = true;\n }\n } else {\n let memoized = sentinel;\n let prevProps;\n wrappedComponent = function (props, ...args) {\n const shouldUpdate = memoized === sentinel || (compare\n ? !compare(prevProps, props)\n : !shallowEqual(prevProps, props)\n );\n if (shouldUpdate) {\n memoized = Component({ ...Component.defaultProps, ...props }, ...args);\n prevProps = props;\n }\n return memoized;\n };\n }\n Object.assign(\n wrappedComponent,\n Component,\n { displayName: adapter.displayNameOfNode({ type: Component }) },\n );\n lastComponent = Component;\n }\n return wrappedComponent;\n };\n\n // Wrap functional components on versions prior to 16.5,\n // to avoid inadvertently pass a `this` instance to it.\n const wrapFunctionalComponent = (Component) => {\n if (is166 && has(Component, 'defaultProps')) {\n if (lastComponent !== Component) {\n wrappedComponent = Object.assign(\n // eslint-disable-next-line new-cap\n (props, ...args) => Component({ ...Component.defaultProps, ...props }, ...args),\n Component,\n { displayName: adapter.displayNameOfNode({ type: Component }) },\n );\n lastComponent = Component;\n }\n return wrappedComponent;\n }\n if (is165) {\n return Component;\n }\n\n if (lastComponent !== Component) {\n wrappedComponent = Object.assign(\n (...args) => Component(...args), // eslint-disable-line new-cap\n Component,\n );\n lastComponent = Component;\n }\n return wrappedComponent;\n };\n\n const renderElement = (elConfig, ...rest) => {\n const renderedEl = renderer.render(elConfig, ...rest);\n\n const typeIsExisted = !!(renderedEl && renderedEl.type);\n if (is166 && typeIsExisted) {\n const clonedEl = transformSuspense(renderedEl, elConfig, { suspenseFallback });\n\n const elementIsChanged = clonedEl.type !== renderedEl.type;\n if (elementIsChanged) {\n return renderer.render({ ...elConfig, type: clonedEl.type }, ...rest);\n }\n }\n\n return renderedEl;\n };\n\n return {\n render(el, unmaskedContext, {\n providerValues = new Map(),\n } = {}) {\n cachedNode = el;\n /* eslint consistent-return: 0 */\n if (typeof el.type === 'string') {\n isDOM = true;\n } else if (isContextProvider(el)) {\n providerValues.set(el.type, el.props.value);\n const MockProvider = Object.assign(\n (props) => props.children,\n el.type,\n );\n return withSetStateAllowed(() => renderElement({ ...el, type: MockProvider }));\n } else if (isContextConsumer(el)) {\n const Provider = adapter.getProviderFromConsumer(el.type);\n const value = providerValues.has(Provider)\n ? providerValues.get(Provider)\n : getProviderDefaultValue(Provider);\n const MockConsumer = Object.assign(\n (props) => props.children(value),\n el.type,\n );\n return withSetStateAllowed(() => renderElement({ ...el, type: MockConsumer }));\n } else {\n isDOM = false;\n let renderedEl = el;\n if (isLazy(renderedEl)) {\n throw TypeError('`React.lazy` is not supported by shallow rendering.');\n }\n\n renderedEl = transformSuspense(renderedEl, renderedEl, { suspenseFallback });\n const { type: Component } = renderedEl;\n\n const context = getMaskedContext(Component.contextTypes, unmaskedContext);\n\n if (isMemo(el.type)) {\n const { type: InnerComp, compare } = el.type;\n\n return withSetStateAllowed(() => renderElement(\n { ...el, type: wrapPureComponent(InnerComp, compare) },\n context,\n ));\n }\n\n const isComponentStateful = isStateful(Component);\n\n if (!isComponentStateful && typeof Component === 'function') {\n return withSetStateAllowed(() => renderElement(\n { ...renderedEl, type: wrapFunctionalComponent(Component) },\n context,\n ));\n }\n\n if (isComponentStateful) {\n if (\n renderer._instance\n && el.props === renderer._instance.props\n && !shallowEqual(context, renderer._instance.context)\n ) {\n const { restore } = spyMethod(\n renderer,\n '_updateClassComponent',\n (originalMethod) => function _updateClassComponent(...args) {\n const { props } = renderer._instance;\n const clonedProps = { ...props };\n renderer._instance.props = clonedProps;\n\n const result = originalMethod.apply(renderer, args);\n\n renderer._instance.props = props;\n restore();\n\n return result;\n },\n );\n }\n\n // fix react bug; see implementation of `getEmptyStateValue`\n const emptyStateValue = getEmptyStateValue();\n if (emptyStateValue) {\n Object.defineProperty(Component.prototype, 'state', {\n configurable: true,\n enumerable: true,\n get() {\n return null;\n },\n set(value) {\n if (value !== emptyStateValue) {\n Object.defineProperty(this, 'state', {\n configurable: true,\n enumerable: true,\n value,\n writable: true,\n });\n }\n },\n });\n }\n }\n return withSetStateAllowed(() => renderElement(renderedEl, context));\n }\n },\n unmount() {\n renderer.unmount();\n },\n getNode() {\n if (isDOM) {\n return elementToTree(cachedNode);\n }\n const output = renderer.getRenderOutput();\n return {\n nodeType: nodeTypeFromType(cachedNode.type),\n type: cachedNode.type,\n props: cachedNode.props,\n key: ensureKeyOrUndefined(cachedNode.key),\n ref: cachedNode.ref,\n instance: renderer._instance,\n rendered: Array.isArray(output)\n ? flatten(output).map((el) => elementToTree(el))\n : elementToTree(output),\n };\n },\n simulateError(nodeHierarchy, rootNode, error) {\n simulateError(\n error,\n renderer._instance,\n cachedNode,\n nodeHierarchy.concat(cachedNode),\n nodeTypeFromType,\n adapter.displayNameOfNode.bind(adapter),\n is166 ? cachedNode.type : undefined,\n );\n },\n simulateEvent(node, event, ...args) {\n const handler = node.props[propFromEvent(event, eventOptions)];\n if (handler) {\n withSetStateAllowed(() => {\n // TODO(lmr): create/use synthetic events\n // TODO(lmr): emulate React's event propagation\n // ReactDOM.unstable_batchedUpdates(() => {\n handler(...args);\n // });\n });\n }\n },\n batchedUpdates(fn) {\n return fn();\n // return ReactDOM.unstable_batchedUpdates(fn);\n },\n checkPropTypes(typeSpecs, values, location, hierarchy) {\n return checkPropTypes(\n typeSpecs,\n values,\n location,\n displayNameOfNode(cachedNode),\n () => getComponentStack(hierarchy.concat([cachedNode])),\n );\n },\n };\n }\n\n createStringRenderer(options) {\n if (has(options, 'suspenseFallback')) {\n throw new TypeError('`suspenseFallback` should not be specified in options of string renderer');\n }\n return {\n render(el, context) {\n if (options.context && (el.type.contextTypes || options.childContextTypes)) {\n const childContextTypes = {\n ...(el.type.contextTypes || {}),\n ...options.childContextTypes,\n };\n const ContextWrapper = createRenderWrapper(el, context, childContextTypes);\n return ReactDOMServer.renderToStaticMarkup(React.createElement(ContextWrapper));\n }\n return ReactDOMServer.renderToStaticMarkup(el);\n },\n };\n }\n\n // Provided a bag of options, return an `EnzymeRenderer`. Some options can be implementation\n // specific, like `attach` etc. for React, but not part of this interface explicitly.\n // eslint-disable-next-line class-methods-use-this\n createRenderer(options) {\n switch (options.mode) {\n case EnzymeAdapter.MODES.MOUNT: return this.createMountRenderer(options);\n case EnzymeAdapter.MODES.SHALLOW: return this.createShallowRenderer(options);\n case EnzymeAdapter.MODES.STRING: return this.createStringRenderer(options);\n default:\n throw new Error(`Enzyme Internal Error: Unrecognized mode: ${options.mode}`);\n }\n }\n\n wrap(element) {\n return wrap(element);\n }\n\n // converts an RSTNode to the corresponding JSX Pragma Element. This will be needed\n // in order to implement the `Wrapper.mount()` and `Wrapper.shallow()` methods, but should\n // be pretty straightforward for people to implement.\n // eslint-disable-next-line class-methods-use-this\n nodeToElement(node) {\n if (!node || typeof node !== 'object') return null;\n const { type } = node;\n return React.createElement(unmemoType(type), propsWithKeysAndRef(node));\n }\n\n // eslint-disable-next-line class-methods-use-this\n matchesElementType(node, matchingType) {\n if (!node) {\n return node;\n }\n const { type } = node;\n return unmemoType(type) === unmemoType(matchingType);\n }\n\n elementToNode(element) {\n return elementToTree(element);\n }\n\n nodeToHostNode(node, supportsArray = false) {\n const nodes = nodeToHostNode(node);\n if (Array.isArray(nodes) && !supportsArray) {\n return nodes[0];\n }\n return nodes;\n }\n\n displayNameOfNode(node) {\n if (!node) return null;\n const { type, $$typeof } = node;\n const adapter = this;\n\n const nodeType = type || $$typeof;\n\n // newer node types may be undefined, so only test if the nodeType exists\n if (nodeType) {\n switch (nodeType) {\n case (is166 ? ConcurrentMode : AsyncMode) || NaN: return is166 ? 'ConcurrentMode' : 'AsyncMode';\n case Fragment || NaN: return 'Fragment';\n case StrictMode || NaN: return 'StrictMode';\n case Profiler || NaN: return 'Profiler';\n case Portal || NaN: return 'Portal';\n case Suspense || NaN: return 'Suspense';\n default:\n }\n }\n\n const $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case ContextConsumer || NaN: return 'ContextConsumer';\n case ContextProvider || NaN: return 'ContextProvider';\n case Memo || NaN: {\n const nodeName = displayNameOfNode(node);\n return typeof nodeName === 'string' ? nodeName : `Memo(${adapter.displayNameOfNode(type)})`;\n }\n case ForwardRef || NaN: {\n if (type.displayName) {\n return type.displayName;\n }\n const name = adapter.displayNameOfNode({ type: type.render });\n return name ? `ForwardRef(${name})` : 'ForwardRef';\n }\n case Lazy || NaN: {\n return 'lazy';\n }\n default: return displayNameOfNode(node);\n }\n }\n\n isValidElement(element) {\n return isElement(element);\n }\n\n isValidElementType(object) {\n return !!object && isValidElementType(object);\n }\n\n isFragment(fragment) {\n return typeOfNode(fragment) === Fragment;\n }\n\n isCustomComponent(type) {\n const fakeElement = makeFakeElement(type);\n return !!type && (\n typeof type === 'function'\n || isForwardRef(fakeElement)\n || isContextProvider(fakeElement)\n || isContextConsumer(fakeElement)\n || isSuspense(fakeElement)\n );\n }\n\n isContextConsumer(type) {\n return !!type && isContextConsumer(makeFakeElement(type));\n }\n\n isCustomComponentElement(inst) {\n if (!inst || !this.isValidElement(inst)) {\n return false;\n }\n return this.isCustomComponent(inst.type);\n }\n\n getProviderFromConsumer(Consumer) {\n // React stores references to the Provider on a Consumer differently across versions.\n if (Consumer) {\n let Provider;\n if (Consumer._context) { // check this first, to avoid a deprecation warning\n ({ Provider } = Consumer._context);\n } else if (Consumer.Provider) {\n ({ Provider } = Consumer);\n }\n if (Provider) {\n return Provider;\n }\n }\n throw new Error('Enzyme Internal Error: can’t figure out how to get Provider from Consumer');\n }\n\n createElement(...args) {\n return React.createElement(...args);\n }\n\n wrapWithWrappingComponent(node, options) {\n return {\n RootFinder,\n node: wrapWithWrappingComponent(React.createElement, node, options),\n };\n }\n}\n\nexport default ReactSixteenAdapter;\n"],"mappings":"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"}