New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

active-enzyme

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

active-enzyme - npm Package Compare versions

Comparing version 1.2.1 to 2.0.0

4

build.js

@@ -1,2 +0,2 @@

'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};exports.shallow=shallow;exports.mount=mount;exports.render=render;exports.makeAnalyzer=makeAnalyzer;var _react=require('react');var _enzyme=require('enzyme');function shallow(){var wrapper=_enzyme.shallow.apply(undefined,arguments);return activate(function(){return wrapper})}function mount(){var wrapper=_enzyme.mount.apply(undefined,arguments);return activate(function(){return wrapper})}function render(){var wrapper=_enzyme.render.apply(undefined,arguments);return activate(function(){return wrapper})}function makeAnalyzer(component,styles){var opts=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var transform=function(transform){return function(props){return removeUndefined(transform(props))}}(opts.transform||function(props){return props});var render=opts.type||shallow;return function(){var props=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return render((0,_react.createElement)(component,transform(props))).lookup(styles)}}function activate(findMyself){return new Proxy(findMyself(),{get:function get(target,key){var find=function find(){for(var _len=arguments.length,findArgs=Array(_len),_key=0;_key<_len;_key++){findArgs[_key]=arguments[_key]}return activate(function(){var _findMyself;return(_findMyself=findMyself()).find.apply(_findMyself,findArgs)})};switch(key){case'find':return find;case'lookup':return function(classMap){return new Proxy({},{get:function get(target,name){if(classMap)name=classMap[name].split(' ')[0];return find('.'+name)}})};default:return findMyself()[key];}}})}function removeUndefined(obj){var result=_extends({},obj);for(var key in result){if(result[key]===undefined)delete result[key]}return result}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjdGl2ZS1lbnp5bWUuanMiXSwibmFtZXMiOlsic2hhbGxvdyIsIm1vdW50IiwicmVuZGVyIiwibWFrZUFuYWx5emVyIiwid3JhcHBlciIsImFjdGl2YXRlIiwiY29tcG9uZW50Iiwic3R5bGVzIiwib3B0cyIsInRyYW5zZm9ybSIsInJlbW92ZVVuZGVmaW5lZCIsInByb3BzIiwidHlwZSIsImxvb2t1cCIsImZpbmRNeXNlbGYiLCJQcm94eSIsImdldCIsInRhcmdldCIsImtleSIsImZpbmQiLCJmaW5kQXJncyIsIm5hbWUiLCJjbGFzc01hcCIsInNwbGl0Iiwib2JqIiwicmVzdWx0IiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiNFNBUWdCQSxPLENBQUFBLE8sU0FLQUMsSyxDQUFBQSxLLFNBS0FDLE0sQ0FBQUEsTSxTQUtBQyxZLENBQUFBLFksQ0F2QmhCLDRCQUVBLDhCQU1PLFFBQVNILFFBQVQsRUFBMEIsQ0FDL0IsR0FBTUksU0FBVSwwQ0FBaEIsQ0FDQSxNQUFPQyxVQUFTLGlCQUFNRCxRQUFOLENBQVQsQ0FDUixDQUVNLFFBQVNILE1BQVQsRUFBd0IsQ0FDN0IsR0FBTUcsU0FBVSx3Q0FBaEIsQ0FDQSxNQUFPQyxVQUFTLGlCQUFNRCxRQUFOLENBQVQsQ0FDUixDQUVNLFFBQVNGLE9BQVQsRUFBeUIsQ0FDOUIsR0FBTUUsU0FBVSx5Q0FBaEIsQ0FDQSxNQUFPQyxVQUFTLGlCQUFNRCxRQUFOLENBQVQsQ0FDUixDQUVNLFFBQVNELGFBQVQsQ0FBc0JHLFNBQXRCLENBQWlDQyxNQUFqQyxDQUFvRCxJQUFYQyxLQUFXLDJEQUFKLEVBQUksQ0FDdkQsR0FBTUMsV0FBYSwwQkFBYSx1QkFBU0MsaUJBQWdCRCxVQUFVRSxLQUFWLENBQWhCLENBQVQsQ0FBYixDQUFELENBQTBESCxLQUFLQyxTQUFMLEVBQW1CLHNCQUFTRSxNQUFULENBQTdFLENBQWxCLENBRUEsR0FBTVQsUUFBU00sS0FBS0ksSUFBTCxFQUFhWixPQUE1QixDQUVBLE1BQU8sZUFBQ1csTUFBRCwyREFBUyxFQUFULE9BQWdCVCxRQUFPLHlCQUFjSSxTQUFkLENBQXlCRyxVQUFVRSxLQUFWLENBQXpCLENBQVAsRUFBbURFLE1BQW5ELENBQTBETixNQUExRCxDQUFoQixDQUNWLENBRUQsUUFBU0YsU0FBVCxDQUFrQlMsVUFBbEIsQ0FBOEIsQ0FDNUIsTUFBTyxJQUFJQyxNQUFKLENBQVVELFlBQVYsQ0FBd0IsQ0FDN0JFLEdBRDZCLGNBQ3pCQyxNQUR5QixDQUNqQkMsR0FEaUIsQ0FDWixDQUNmLEdBQU1DLE1BQU8sUUFBUEEsS0FBTyxpQ0FBSUMsUUFBSixzQ0FBSUEsUUFBSiw2QkFBaUJmLFVBQVMsaUNBQU0sMkJBQWFjLElBQWIsbUJBQXFCQyxRQUFyQixDQUFOLENBQVQsQ0FBakIsQ0FBYixDQUNBLE9BQVFGLEdBQVIsRUFDRSxJQUFLLE1BQUwsQ0FDRSxNQUFPQyxLQUFQLENBQ0YsSUFBSyxRQUFMLENBQ0UsTUFBTywwQkFBWSxJQUFJSixNQUFKLENBQVUsRUFBVixDQUFjLENBQy9CQyxHQUQrQixjQUMzQkMsTUFEMkIsQ0FDbkJJLElBRG1CLENBQ2IsQ0FDaEIsR0FBSUMsUUFBSixDQUNFRCxLQUFPQyxTQUFTRCxJQUFULEVBQWVFLEtBQWYsQ0FBcUIsR0FBckIsRUFBMEIsQ0FBMUIsQ0FBUCxDQUNGLE1BQU9KLFVBQVNFLElBQVQsQ0FDUixDQUw4QixDQUFkLENBQVosQ0FBUCxDQU9GLFFBQ0UsTUFBT1AsY0FBYUksR0FBYixDQUFQLENBWkosQ0FjRCxDQWpCNEIsQ0FBeEIsQ0FtQlIsQ0FFRCxRQUFTUixnQkFBVCxDQUF5QmMsR0FBekIsQ0FBOEIsQ0FDMUIsR0FBTUMsb0JBQWNELEdBQWQsQ0FBTixDQUNBLElBQUssR0FBTU4sSUFBWCxHQUFrQk8sT0FBbEIsQ0FBMEIsQ0FDdEIsR0FBSUEsT0FBT1AsR0FBUCxJQUFnQlEsU0FBcEIsQ0FDSSxNQUFPRCxRQUFPUCxHQUFQLENBQ2QsQ0FDRCxNQUFPTyxPQUNWIiwiZmlsZSI6ImFjdGl2ZS1lbnp5bWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7XG4gIHNoYWxsb3cgYXMgZW56eW1lU2hhbGxvdyxcbiAgbW91bnQgYXMgZW56eW1lTW91bnQsXG4gIHJlbmRlciBhcyBlbnp5bWVSZW5kZXIsXG59IGZyb20gJ2VuenltZSdcblxuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3coLi4uYXJncykge1xuICBjb25zdCB3cmFwcGVyID0gZW56eW1lU2hhbGxvdyguLi5hcmdzKVxuICByZXR1cm4gYWN0aXZhdGUoKCkgPT4gd3JhcHBlcilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdW50KC4uLmFyZ3MpIHtcbiAgY29uc3Qgd3JhcHBlciA9IGVuenltZU1vdW50KC4uLmFyZ3MpXG4gIHJldHVybiBhY3RpdmF0ZSgoKSA9PiB3cmFwcGVyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKC4uLmFyZ3MpIHtcbiAgY29uc3Qgd3JhcHBlciA9IGVuenltZVJlbmRlciguLi5hcmdzKVxuICByZXR1cm4gYWN0aXZhdGUoKCkgPT4gd3JhcHBlcilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VBbmFseXplcihjb21wb25lbnQsIHN0eWxlcywgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gKHRyYW5zZm9ybSA9PiBwcm9wcyA9PiByZW1vdmVVbmRlZmluZWQodHJhbnNmb3JtKHByb3BzKSkpKG9wdHMudHJhbnNmb3JtIHx8IChwcm9wcyA9PiBwcm9wcykpXG5cbiAgICBjb25zdCByZW5kZXIgPSBvcHRzLnR5cGUgfHwgc2hhbGxvd1xuXG4gICAgcmV0dXJuIChwcm9wcyA9IHt9KSA9PiByZW5kZXIoY3JlYXRlRWxlbWVudChjb21wb25lbnQsIHRyYW5zZm9ybShwcm9wcykpKS5sb29rdXAoc3R5bGVzKVxufVxuXG5mdW5jdGlvbiBhY3RpdmF0ZShmaW5kTXlzZWxmKSB7XG4gIHJldHVybiBuZXcgUHJveHkoZmluZE15c2VsZigpLCB7XG4gICAgZ2V0KHRhcmdldCwga2V5KSB7XG4gICAgICBjb25zdCBmaW5kID0gKC4uLmZpbmRBcmdzKSA9PiBhY3RpdmF0ZSgoKSA9PiBmaW5kTXlzZWxmKCkuZmluZCguLi5maW5kQXJncykpXG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICdmaW5kJzpcbiAgICAgICAgICByZXR1cm4gZmluZFxuICAgICAgICBjYXNlICdsb29rdXAnOlxuICAgICAgICAgIHJldHVybiBjbGFzc01hcCA9PiBuZXcgUHJveHkoe30sIHtcbiAgICAgICAgICAgIGdldCh0YXJnZXQsIG5hbWUpIHtcbiAgICAgICAgICAgICAgaWYgKGNsYXNzTWFwKVxuICAgICAgICAgICAgICAgIG5hbWUgPSBjbGFzc01hcFtuYW1lXS5zcGxpdCgnICcpWzBdXG4gICAgICAgICAgICAgIHJldHVybiBmaW5kKGAuJHtuYW1lfWApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gZmluZE15c2VsZigpW2tleV1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG5cbmZ1bmN0aW9uIHJlbW92ZVVuZGVmaW5lZChvYmopIHtcbiAgICBjb25zdCByZXN1bHQgPSB7IC4uLm9iaiB9XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcmVzdWx0KSB7XG4gICAgICAgIGlmIChyZXN1bHRba2V5XSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgZGVsZXRlIHJlc3VsdFtrZXldXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbn1cbiJdfQ==
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};exports.shallow=shallow;exports.mount=mount;exports.render=render;exports.makeRenderer=makeRenderer;var _react=require('react');var _enzyme=require('enzyme');function shallow(){var wrapper=_enzyme.shallow.apply(undefined,arguments);return activate(function(){return wrapper})}function mount(){var wrapper=_enzyme.mount.apply(undefined,arguments);return activate(function(){return wrapper})}function render(){var wrapper=_enzyme.render.apply(undefined,arguments);return activate(function(){return wrapper})}function makeRenderer(component){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var _ref$method=_ref.method;var method=_ref$method===undefined?shallow:_ref$method;var _ref$transform=_ref.transform;var transform=_ref$transform===undefined?function(props){return props}:_ref$transform;var enzymeOptions=_ref.enzymeOptions;var doTransform=function doTransform(props){return removeUndefined(transform(props))};return function(){var props=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return method((0,_react.createElement)(component,doTransform(props)),enzymeOptions)}}function activate(findMyself){var find=function find(){for(var _len=arguments.length,findArgs=Array(_len),_key=0;_key<_len;_key++){findArgs[_key]=arguments[_key]}return activate(function(){var _findMyself;return(_findMyself=findMyself()).find.apply(_findMyself,findArgs)})};var classes=new Proxy({},{get:function get(target,name){return find('.'+name)}});var overrides={find:find,classes:classes};return new Proxy(findMyself(),{get:function get(target,key){return overrides[key]||findMyself()[key]}})}function removeUndefined(obj){var result=_extends({},obj);for(var key in result){if(result[key]===undefined)delete result[key]}return result}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjdGl2ZS1lbnp5bWUuanMiXSwibmFtZXMiOlsic2hhbGxvdyIsIm1vdW50IiwicmVuZGVyIiwibWFrZVJlbmRlcmVyIiwid3JhcHBlciIsImFjdGl2YXRlIiwiY29tcG9uZW50IiwibWV0aG9kIiwidHJhbnNmb3JtIiwicHJvcHMiLCJlbnp5bWVPcHRpb25zIiwiZG9UcmFuc2Zvcm0iLCJyZW1vdmVVbmRlZmluZWQiLCJmaW5kTXlzZWxmIiwiZmluZCIsImZpbmRBcmdzIiwiY2xhc3NlcyIsIlByb3h5IiwiZ2V0IiwidGFyZ2V0IiwibmFtZSIsIm92ZXJyaWRlcyIsImtleSIsIm9iaiIsInJlc3VsdCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IjRTQVFnQkEsTyxDQUFBQSxPLFNBS0FDLEssQ0FBQUEsSyxTQUtBQyxNLENBQUFBLE0sU0FLQUMsWSxDQUFBQSxZLENBdkJoQiw0QkFFQSw4QkFNTyxRQUFTSCxRQUFULEVBQTBCLENBQy9CLEdBQU1JLFNBQVUsMENBQWhCLENBQ0EsTUFBT0MsVUFBUyxpQkFBTUQsUUFBTixDQUFULENBQ1IsQ0FFTSxRQUFTSCxNQUFULEVBQXdCLENBQzdCLEdBQU1HLFNBQVUsd0NBQWhCLENBQ0EsTUFBT0MsVUFBUyxpQkFBTUQsUUFBTixDQUFULENBQ1IsQ0FFTSxRQUFTRixPQUFULEVBQXlCLENBQzlCLEdBQU1FLFNBQVUseUNBQWhCLENBQ0EsTUFBT0MsVUFBUyxpQkFBTUQsUUFBTixDQUFULENBQ1IsQ0FFTSxRQUFTRCxhQUFULENBQXNCRyxTQUF0QixDQUlDLG9FQUFKLEVBQUksc0JBSE5DLE1BR00sSUFITkEsT0FHTSx5QkFIR1AsT0FHSCxxQ0FGTlEsU0FFTSxJQUZOQSxVQUVNLDRCQUZNLHNCQUFTQyxNQUFULENBRU4sbUJBRE5DLGNBQ00sTUFETkEsYUFDTSxDQUNOLEdBQU1DLGFBQWMsUUFBZEEsWUFBYyxjQUFTQyxpQkFBZ0JKLFVBQVVDLEtBQVYsQ0FBaEIsQ0FBVCxDQUFwQixDQUNBLE1BQU8sZUFBQ0EsTUFBRCwyREFBUyxFQUFULE9BQWdCRixRQUFPLHlCQUFjRCxTQUFkLENBQXlCSyxZQUFZRixLQUFaLENBQXpCLENBQVAsQ0FBcURDLGFBQXJELENBQWhCLENBQ1IsQ0FFRCxRQUFTTCxTQUFULENBQWtCUSxVQUFsQixDQUE4QixDQUM1QixHQUFNQyxNQUFPLFFBQVBBLEtBQU8saUNBQUlDLFFBQUosc0NBQUlBLFFBQUosNkJBQWlCVixVQUFTLGlDQUFNLDJCQUFhUyxJQUFiLG1CQUFxQkMsUUFBckIsQ0FBTixDQUFULENBQWpCLENBQWIsQ0FDQSxHQUFNQyxTQUFVLEdBQUlDLE1BQUosQ0FBVSxFQUFWLENBQWMsQ0FDNUJDLEdBRDRCLGNBQ3hCQyxNQUR3QixDQUNoQkMsSUFEZ0IsQ0FDVixDQUNoQixNQUFPTixVQUFTTSxJQUFULENBQ1IsQ0FIMkIsQ0FBZCxDQUFoQixDQUtBLEdBQU1DLFdBQVksQ0FBRVAsU0FBRixDQUFRRSxlQUFSLENBQWxCLENBQ0EsTUFBTyxJQUFJQyxNQUFKLENBQVVKLFlBQVYsQ0FBd0IsQ0FDN0JLLEdBRDZCLGNBQ3pCQyxNQUR5QixDQUNqQkcsR0FEaUIsQ0FDWixDQUNmLE1BQU9ELFdBQVVDLEdBQVYsR0FBa0JULGFBQWFTLEdBQWIsQ0FDMUIsQ0FINEIsQ0FBeEIsQ0FLUixDQUVELFFBQVNWLGdCQUFULENBQXlCVyxHQUF6QixDQUE4QixDQUMxQixHQUFNQyxvQkFBY0QsR0FBZCxDQUFOLENBQ0EsSUFBSyxHQUFNRCxJQUFYLEdBQWtCRSxPQUFsQixDQUEwQixDQUN0QixHQUFJQSxPQUFPRixHQUFQLElBQWdCRyxTQUFwQixDQUNJLE1BQU9ELFFBQU9GLEdBQVAsQ0FDZCxDQUNELE1BQU9FLE9BQ1YiLCJmaWxlIjoiYWN0aXZlLWVuenltZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHtcbiAgc2hhbGxvdyBhcyBlbnp5bWVTaGFsbG93LFxuICBtb3VudCBhcyBlbnp5bWVNb3VudCxcbiAgcmVuZGVyIGFzIGVuenltZVJlbmRlcixcbn0gZnJvbSAnZW56eW1lJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2hhbGxvdyguLi5hcmdzKSB7XG4gIGNvbnN0IHdyYXBwZXIgPSBlbnp5bWVTaGFsbG93KC4uLmFyZ3MpXG4gIHJldHVybiBhY3RpdmF0ZSgoKSA9PiB3cmFwcGVyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91bnQoLi4uYXJncykge1xuICBjb25zdCB3cmFwcGVyID0gZW56eW1lTW91bnQoLi4uYXJncylcbiAgcmV0dXJuIGFjdGl2YXRlKCgpID0+IHdyYXBwZXIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIoLi4uYXJncykge1xuICBjb25zdCB3cmFwcGVyID0gZW56eW1lUmVuZGVyKC4uLmFyZ3MpXG4gIHJldHVybiBhY3RpdmF0ZSgoKSA9PiB3cmFwcGVyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZVJlbmRlcmVyKGNvbXBvbmVudCwge1xuICBtZXRob2QgPSBzaGFsbG93LFxuICB0cmFuc2Zvcm0gPSBwcm9wcyA9PiBwcm9wcyxcbiAgZW56eW1lT3B0aW9uc1xufSA9IHt9KSB7XG4gIGNvbnN0IGRvVHJhbnNmb3JtID0gcHJvcHMgPT4gcmVtb3ZlVW5kZWZpbmVkKHRyYW5zZm9ybShwcm9wcykpXG4gIHJldHVybiAocHJvcHMgPSB7fSkgPT4gbWV0aG9kKGNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCBkb1RyYW5zZm9ybShwcm9wcykpLCBlbnp5bWVPcHRpb25zKVxufVxuXG5mdW5jdGlvbiBhY3RpdmF0ZShmaW5kTXlzZWxmKSB7XG4gIGNvbnN0IGZpbmQgPSAoLi4uZmluZEFyZ3MpID0+IGFjdGl2YXRlKCgpID0+IGZpbmRNeXNlbGYoKS5maW5kKC4uLmZpbmRBcmdzKSlcbiAgY29uc3QgY2xhc3NlcyA9IG5ldyBQcm94eSh7fSwge1xuICAgIGdldCh0YXJnZXQsIG5hbWUpIHtcbiAgICAgIHJldHVybiBmaW5kKGAuJHtuYW1lfWApXG4gICAgfVxuICB9KVxuICBjb25zdCBvdmVycmlkZXMgPSB7IGZpbmQsIGNsYXNzZXMgfVxuICByZXR1cm4gbmV3IFByb3h5KGZpbmRNeXNlbGYoKSwge1xuICAgIGdldCh0YXJnZXQsIGtleSkge1xuICAgICAgcmV0dXJuIG92ZXJyaWRlc1trZXldIHx8IGZpbmRNeXNlbGYoKVtrZXldXG4gICAgfVxuICB9KVxufVxuXG5mdW5jdGlvbiByZW1vdmVVbmRlZmluZWQob2JqKSB7XG4gICAgY29uc3QgcmVzdWx0ID0geyAuLi5vYmogfVxuICAgIGZvciAoY29uc3Qga2V5IGluIHJlc3VsdCkge1xuICAgICAgICBpZiAocmVzdWx0W2tleV0gPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGRlbGV0ZSByZXN1bHRba2V5XVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0XG59XG4iXX0=
{
"name": "active-enzyme",
"version": "1.2.1",
"version": "2.0.0",
"description": "Boilerplate-free Enzyme testing",

@@ -5,0 +5,0 @@ "main": "build.js",

@@ -46,3 +46,3 @@ # active-enzyme [![Build Status](https://travis-ci.org/pelotom/active-enzyme.svg?branch=master)](https://travis-ci.org/pelotom/active-enzyme)

switchLanguage
} = shallow(<Greeting name={name} />).lookup()
} = shallow(<Greeting name={name} />).classes

@@ -61,61 +61,18 @@ expect(greeting.text()).toBe(`Hello, ${name}!`)

1. Enzyme wrapper objects acquire a special `lookup()` method which allows you to query based on a class names. This is nice because it allows you to use ES2015 destructuring syntax as above to select all the rendered elements you care about for a given test.
1. Enzyme wrapper objects acquire a special `classes` property which allows you to query based on a class names. This is nice because it allows you to use ES2015 destructuring syntax as above to select all the rendered elements you care about for a given test.
1. The first feature wouldn't be very useful with regular Enzyme if your test triggers re-renders of the element tree (as is happening here implicitly as a result of the `'click'` events), because the `greeting` and `switchLanguage` wrappers are normally immutable. This library instead returns *active* wrappers, which change in response to the element tree being re-rendered.
You may provide a custom mapping object to the `lookup()` method which shows which properties should be mapped to which `className`s:
Since the most common usage pattern is that you have a bunch of tests all testing the same component, there is a `makeRenderer()` utility which allows the individual tests to simply vary the props they're going to render it with:
```javascript
const {
foo
} = shallow(<Greeting name={name} />).lookup({
foo: 'greeting'
})
```
this would be equivalent to
```javascript
const foo = shallow(<Greeting name={name} />).find('.greeting')
```
This might not seem all that useful at first blush, but it is intended to support [CSS Modules](https://github.com/css-modules/css-modules), where `className`s get munged so as to be globally unique. Going back to our `Greeting` component test example, if we were using CSS Modules it would look something like this:
```javascript
import React from 'react'
import { shallow } from 'active-enzyme'
import { makeRenderer } from 'active-enzyme'
import Greeting from './Greeting'
import styles from './Greeting.css'
it('greets in multiple languages', () => {
const name = 'John'
const render = makeRenderer(Greeting)
const {
greeting,
switchLanguage
} = shallow(<Greeting name={name} />).lookup(styles)
expect(greeting.text()).toBe(`Hello, ${name}!`)
switchLanguage.simulate('click')
expect(greeting.text()).toBe(`Bonjour, ${name}!`)
switchLanguage.simulate('click')
expect(greeting.text()).toBe(`Hello, ${name}!`)
})
```
Finally, since the most common usage pattern is that you have a bunch of tests all testing the same component, possibly with associated CSS Modules, there is a `makeAnalyzer()` utility which allows the individual tests to simply vary the props they're going to pass to it when rendering:
```javascript
import React from 'react'
import { makeAnalyzer } from 'active-enzyme'
import Greeting from './Greeting'
import styles from './Greeting.css'
const analyze = makeAnalyzer(Greeting, styles)
it('greets in multiple languages', () => {
const name = 'John'
const { greeting, switchLanguage } = analyze({ name })
const { greeting, switchLanguage } = render({ name }).classes

@@ -122,0 +79,0 @@ expect(greeting.text()).toBe(`Hello, ${name}!`)

@@ -24,28 +24,22 @@ import { createElement } from 'react'

export function makeAnalyzer(component, styles, opts = {}) {
const transform = (transform => props => removeUndefined(transform(props)))(opts.transform || (props => props))
const render = opts.type || shallow
return (props = {}) => render(createElement(component, transform(props))).lookup(styles)
export function makeRenderer(component, {
method = shallow,
transform = props => props,
enzymeOptions
} = {}) {
const doTransform = props => removeUndefined(transform(props))
return (props = {}) => method(createElement(component, doTransform(props)), enzymeOptions)
}
function activate(findMyself) {
const find = (...findArgs) => activate(() => findMyself().find(...findArgs))
const classes = new Proxy({}, {
get(target, name) {
return find(`.${name}`)
}
})
const overrides = { find, classes }
return new Proxy(findMyself(), {
get(target, key) {
const find = (...findArgs) => activate(() => findMyself().find(...findArgs))
switch (key) {
case 'find':
return find
case 'lookup':
return classMap => new Proxy({}, {
get(target, name) {
if (classMap)
name = classMap[name].split(' ')[0]
return find(`.${name}`)
}
})
default:
return findMyself()[key]
}
return overrides[key] || findMyself()[key]
}

@@ -52,0 +46,0 @@ })

import React, { Component } from 'react'
import * as renderers from './active-enzyme'
import * as activeEnzyme from './active-enzyme'
describe('shallow wrapper', () => {
it('is active', () => {
['shallow', 'mount'].forEach(method => {
['shallow', 'mount'].forEach(methodName => {
const render = activeEnzyme.makeRenderer(Greeting, { method: activeEnzyme[methodName] })
const name = 'John'

@@ -13,3 +15,3 @@

switchLanguage
} = renderers[method](<Greeting name={name} />).lookup()
} = render({ name }).classes

@@ -27,26 +29,2 @@ expect(greeting.text()).toBe(`Hello, ${name}!`)

describe('selector mapping', () => {
it('works', () => {
['shallow', 'mount'].forEach(method => {
const name = 'John'
const {
greetingRenamed,
switchLanguageRenamed
} = renderers[method](<Greeting name={name} />).lookup({
greetingRenamed: 'greeting',
switchLanguageRenamed: 'switchLanguage',
})
expect(greetingRenamed.text()).toBe(`Hello, ${name}!`)
switchLanguageRenamed.simulate('click')
expect(greetingRenamed.text()).toBe(`Bonjour, ${name}!`)
switchLanguageRenamed.simulate('click')
expect(greetingRenamed.text()).toBe(`Hello, ${name}!`)
})
})
})
// Test component

@@ -53,0 +31,0 @@

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