Socket
Socket
Sign inDemoInstall

enzyme-adapter-react-16

Package Overview
Dependencies
Maintainers
3
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

enzyme-adapter-react-16 - npm Package Compare versions

Comparing version 1.5.0 to 1.6.0

89

build/ReactSixteenAdapter.js

@@ -258,2 +258,36 @@ 'use strict';

function getEmptyStateValue() {
// this handles a bug in React 16.0 - 16.2
// see https://github.com/facebook/react/commit/39be83565c65f9c522150e52375167568a2a1459
// also see https://github.com/facebook/react/pull/11965
// eslint-disable-next-line react/prefer-stateless-function
var EmptyState = function (_React$Component) {
_inherits(EmptyState, _React$Component);
function EmptyState() {
_classCallCheck(this, EmptyState);
return _possibleConstructorReturn(this, (EmptyState.__proto__ || Object.getPrototypeOf(EmptyState)).apply(this, arguments));
}
_createClass(EmptyState, [{
key: 'render',
value: function () {
function render() {
return null;
}
return render;
}()
}]);
return EmptyState;
}(_react2['default'].Component);
var testRenderer = new _shallow2['default']();
testRenderer.render(_react2['default'].createElement(EmptyState));
return testRenderer._instance.state;
}
var ReactSixteenAdapter = function (_EnzymeAdapter) {

@@ -265,7 +299,7 @@ _inherits(ReactSixteenAdapter, _EnzymeAdapter);

var _this = _possibleConstructorReturn(this, (ReactSixteenAdapter.__proto__ || Object.getPrototypeOf(ReactSixteenAdapter)).call(this));
var _this2 = _possibleConstructorReturn(this, (ReactSixteenAdapter.__proto__ || Object.getPrototypeOf(ReactSixteenAdapter)).call(this));
var lifecycles = _this.options.lifecycles;
var lifecycles = _this2.options.lifecycles;
_this.options = (0, _object2['default'])({}, _this.options, {
_this2.options = (0, _object2['default'])({}, _this2.options, {
enableComponentDidUpdateOnSetState: true, // TODO: remove, semver-major

@@ -283,3 +317,3 @@ lifecycles: (0, _object2['default'])({}, lifecycles, {

});
return _this;
return _this2;
}

@@ -412,2 +446,34 @@

}
if (isStateful) {
// fix react bug; see implementation of `getEmptyStateValue`
var emptyStateValue = getEmptyStateValue();
if (emptyStateValue) {
Object.defineProperty(Component.prototype, 'state', {
configurable: true,
enumerable: true,
get: function () {
function get() {
return null;
}
return get;
}(),
set: function () {
function set(value) {
if (value !== emptyStateValue) {
Object.defineProperty(this, 'state', {
configurable: true,
enumerable: true,
value: value,
writable: true
});
}
return true;
}
return set;
}()
});
}
}
return (0, _enzymeAdapterUtils.withSetStateAllowed)(function () {

@@ -605,2 +671,5 @@ return renderer.render(el, context);

{
if (type.displayName) {
return type.displayName;
}
var name = type.render.displayName || (0, _functionPrototype2['default'])(type.render);

@@ -644,2 +713,14 @@ return name ? 'ForwardRef(' + String(name) + ')' : 'ForwardRef';

}, {
key: 'isCustomComponentElement',
value: function () {
function isCustomComponentElement(inst) {
if (!inst || !this.isValidElement(inst)) {
return false;
}
return typeof inst.type === 'function' || (0, _reactIs.isForwardRef)(inst);
}
return isCustomComponentElement;
}()
}, {
key: 'createElement',

@@ -646,0 +727,0 @@ value: function () {

8

package.json
{
"name": "enzyme-adapter-react-16",
"version": "1.5.0",
"version": "1.6.0",
"description": "JavaScript Testing utilities for React",

@@ -42,3 +42,3 @@ "homepage": "http://airbnb.io/enzyme/",

"prop-types": "^15.6.2",
"react-is": "^16.4.2",
"react-is": "^16.5.2",
"react-test-renderer": "^16.0.0-0"

@@ -54,5 +54,5 @@ },

"babel-plugin-transform-replace-object-assign": "^1.0.0",
"babel-preset-airbnb": "^2.5.3",
"babel-preset-airbnb": "^2.6.0",
"enzyme": "^3.0.0",
"eslint": "^5.4.0",
"eslint": "^5.6.1",
"eslint-config-airbnb": "^17.1.0",

@@ -59,0 +59,0 @@ "eslint-plugin-import": "^2.14.0",

@@ -14,2 +14,3 @@ /* eslint no-use-before-define: 0 */

isPortal,
isForwardRef,
isValidElementType,

@@ -230,2 +231,18 @@ AsyncMode,

function getEmptyStateValue() {
// this handles a bug in React 16.0 - 16.2
// see https://github.com/facebook/react/commit/39be83565c65f9c522150e52375167568a2a1459
// also see https://github.com/facebook/react/pull/11965
// eslint-disable-next-line react/prefer-stateless-function
class EmptyState extends React.Component {
render() {
return null;
}
}
const testRenderer = new ShallowRenderer();
testRenderer.render(React.createElement(EmptyState));
return testRenderer._instance.state;
}
class ReactSixteenAdapter extends EnzymeAdapter {

@@ -346,2 +363,26 @@ constructor() {

}
if (isStateful) {
// fix react bug; see implementation of `getEmptyStateValue`
const emptyStateValue = getEmptyStateValue();
if (emptyStateValue) {
Object.defineProperty(Component.prototype, 'state', {
configurable: true,
enumerable: true,
get() {
return null;
},
set(value) {
if (value !== emptyStateValue) {
Object.defineProperty(this, 'state', {
configurable: true,
enumerable: true,
value,
writable: true,
});
}
return true;
},
});
}
}
return withSetStateAllowed(() => renderer.render(el, context));

@@ -469,2 +510,5 @@ }

case ForwardRef || NaN: {
if (type.displayName) {
return type.displayName;
}
const name = type.render.displayName || functionName(type.render);

@@ -489,2 +533,9 @@ return name ? `ForwardRef(${name})` : 'ForwardRef';

isCustomComponentElement(inst) {
if (!inst || !this.isValidElement(inst)) {
return false;
}
return typeof inst.type === 'function' || isForwardRef(inst);
}
createElement(...args) {

@@ -491,0 +542,0 @@ return React.createElement(...args);

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc