enzyme-adapter-react-16
Advanced tools
Comparing version 1.9.1 to 1.10.0
@@ -58,2 +58,3 @@ 'use strict'; | ||
var supportsForwardRef = typeof _react2['default'].forwardRef !== 'undefined'; | ||
var supportsMemo = typeof _react2['default'].memo !== 'undefined'; | ||
@@ -106,2 +107,4 @@ function Fn() { | ||
FunctionalComponent: getFiber(_react2['default'].createElement(Fn)).tag, | ||
MemoSFC: supportsMemo ? getFiber(_react2['default'].createElement(_react2['default'].memo(Fn))).tag : -1, | ||
MemoClass: supportsMemo ? getFiber(_react2['default'].createElement(_react2['default'].memo(Cls))).tag : -1, | ||
HostPortal: getFiber(_reactDom2['default'].createPortal(null, global.document.createElement('div'))).tag, | ||
@@ -108,0 +111,0 @@ HostComponent: getFiber(_react2['default'].createElement('span')).tag, |
@@ -11,6 +11,2 @@ 'use strict'; | ||
var _functionPrototype = require('function.prototype.name'); | ||
var _functionPrototype2 = _interopRequireDefault(_functionPrototype); | ||
var _react = require('react'); | ||
@@ -185,3 +181,22 @@ | ||
}; | ||
case FiberTags.MemoClass: | ||
return { | ||
nodeType: 'class', | ||
type: node.elementType.type, | ||
props: (0, _object2['default'])({}, node.memoizedProps), | ||
key: (0, _enzymeAdapterUtils.ensureKeyOrUndefined)(node.key), | ||
ref: node.ref, | ||
instance: node.stateNode, | ||
rendered: childrenToTree(node.child.child) | ||
}; | ||
case FiberTags.MemoSFC: | ||
return { | ||
nodeType: 'function', | ||
type: node.elementType.type, | ||
props: (0, _object2['default'])({}, node.memoizedProps), | ||
key: (0, _enzymeAdapterUtils.ensureKeyOrUndefined)(node.key), | ||
ref: node.ref, | ||
instance: null, | ||
rendered: childrenToTree(node.child.child) | ||
}; | ||
case FiberTags.HostComponent: | ||
@@ -456,4 +471,16 @@ { | ||
var context = (0, _enzymeAdapterUtils.getMaskedContext)(Component.contextTypes, unmaskedContext); | ||
if (!isStateful && (0, _reactIs.isMemo)(el.type)) { | ||
var InnerComp = el.type.type; | ||
var wrappedEl = (0, _object2['default'])(function () { | ||
return InnerComp.apply(undefined, arguments); | ||
}, // eslint-disable-line new-cap | ||
InnerComp); | ||
return (0, _enzymeAdapterUtils.withSetStateAllowed)(function () { | ||
return renderer.render((0, _object2['default'])({}, el, { type: wrappedEl }), context); | ||
}); | ||
} | ||
if (!isStateful && typeof Component === 'function') { | ||
var wrappedEl = (0, _object2['default'])(function () { | ||
var _wrappedEl = (0, _object2['default'])(function () { | ||
return Component.apply(undefined, arguments); | ||
@@ -463,3 +490,3 @@ }, // eslint-disable-line new-cap | ||
return (0, _enzymeAdapterUtils.withSetStateAllowed)(function () { | ||
return renderer.render((0, _object2['default'])({}, el, { type: wrappedEl }), context); | ||
return renderer.render((0, _object2['default'])({}, el, { type: _wrappedEl }), context); | ||
}); | ||
@@ -713,2 +740,4 @@ } | ||
return 'ContextProvider'; | ||
case _reactIs.Memo || NaN: | ||
return (0, _enzymeAdapterUtils.displayNameOfNode)(type.type); | ||
case _reactIs.ForwardRef || NaN: | ||
@@ -719,3 +748,3 @@ { | ||
} | ||
var name = type.render.displayName || (0, _functionPrototype2['default'])(type.render); | ||
var name = (0, _enzymeAdapterUtils.displayNameOfNode)({ type: type.render }); | ||
return name ? 'ForwardRef(' + String(name) + ')' : 'ForwardRef'; | ||
@@ -722,0 +751,0 @@ } |
{ | ||
"name": "enzyme-adapter-react-16", | ||
"version": "1.9.1", | ||
"version": "1.10.0", | ||
"description": "JavaScript Testing utilities for React", | ||
@@ -18,3 +18,4 @@ "homepage": "http://airbnb.io/enzyme/", | ||
"type": "git", | ||
"url": "https://github.com/airbnb/enzyme.git" | ||
"url": "https://github.com/airbnb/enzyme.git", | ||
"directory": "packages/enzyme-adapter-react-16" | ||
}, | ||
@@ -39,3 +40,2 @@ "keywords": [ | ||
"enzyme-adapter-utils": "^1.10.0", | ||
"function.prototype.name": "^1.1.0", | ||
"object.assign": "^4.1.0", | ||
@@ -42,0 +42,0 @@ "object.values": "^1.1.0", |
@@ -21,2 +21,3 @@ import React from 'react'; | ||
const supportsForwardRef = typeof React.forwardRef !== 'undefined'; | ||
const supportsMemo = typeof React.memo !== 'undefined'; | ||
@@ -48,2 +49,8 @@ function Fn() { | ||
FunctionalComponent: getFiber(React.createElement(Fn)).tag, | ||
MemoSFC: supportsMemo | ||
? getFiber(React.createElement(React.memo(Fn))).tag | ||
: -1, | ||
MemoClass: supportsMemo | ||
? getFiber(React.createElement(React.memo(Cls))).tag | ||
: -1, | ||
HostPortal: getFiber(ReactDOM.createPortal(null, global.document.createElement('div'))).tag, | ||
@@ -50,0 +57,0 @@ HostComponent: getFiber(React.createElement('span')).tag, |
/* eslint no-use-before-define: 0 */ | ||
import functionName from 'function.prototype.name'; | ||
import React from 'react'; | ||
@@ -26,2 +25,4 @@ import ReactDOM from 'react-dom'; | ||
Portal, | ||
isMemo, | ||
Memo, | ||
} from 'react-is'; | ||
@@ -160,3 +161,22 @@ import { EnzymeAdapter } from 'enzyme'; | ||
}; | ||
case FiberTags.MemoClass: | ||
return { | ||
nodeType: 'class', | ||
type: node.elementType.type, | ||
props: { ...node.memoizedProps }, | ||
key: ensureKeyOrUndefined(node.key), | ||
ref: node.ref, | ||
instance: node.stateNode, | ||
rendered: childrenToTree(node.child.child), | ||
}; | ||
case FiberTags.MemoSFC: | ||
return { | ||
nodeType: 'function', | ||
type: node.elementType.type, | ||
props: { ...node.memoizedProps }, | ||
key: ensureKeyOrUndefined(node.key), | ||
ref: node.ref, | ||
instance: null, | ||
rendered: childrenToTree(node.child.child), | ||
}; | ||
case FiberTags.HostComponent: { | ||
@@ -377,2 +397,12 @@ let renderedNodes = flatten(nodeAndSiblingsArray(node.child).map(toTree)); | ||
const context = getMaskedContext(Component.contextTypes, unmaskedContext); | ||
if (!isStateful && isMemo(el.type)) { | ||
const InnerComp = el.type.type; | ||
const wrappedEl = Object.assign( | ||
(...args) => InnerComp(...args), // eslint-disable-line new-cap | ||
InnerComp, | ||
); | ||
return withSetStateAllowed(() => renderer.render({ ...el, type: wrappedEl }, context)); | ||
} | ||
if (!isStateful && typeof Component === 'function') { | ||
@@ -547,2 +577,3 @@ const wrappedEl = Object.assign( | ||
case ContextProvider || NaN: return 'ContextProvider'; | ||
case Memo || NaN: return displayNameOfNode(type.type); | ||
case ForwardRef || NaN: { | ||
@@ -552,3 +583,3 @@ if (type.displayName) { | ||
} | ||
const name = type.render.displayName || functionName(type.render); | ||
const name = displayNameOfNode({ type: type.render }); | ||
return name ? `ForwardRef(${name})` : 'ForwardRef'; | ||
@@ -555,0 +586,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
71664
9
1628
- Removedfunction.prototype.name@^1.1.0