Skip to content

Commit

Permalink
Merge pull request #1793 from lukeapage/patch-1
Browse files Browse the repository at this point in the history
[enzyme-adapter-react-{16,16.3}] [fix] `debug`: prevent unavailable React types from matching `undefined` types
  • Loading branch information
ljharb authored Aug 29, 2018
2 parents a7b6e78 + 724aa2d commit 5be7999
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 39 deletions.
42 changes: 22 additions & 20 deletions packages/enzyme-adapter-react-16.3/src/ReactSixteenThreeAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import {
ContextProvider,
StrictMode,
ForwardRef,
Profiler,
Portal,
} from 'react-is';
import { EnzymeAdapter } from 'enzyme';
Expand Down Expand Up @@ -418,26 +417,29 @@ class ReactSixteenThreeAdapter extends EnzymeAdapter {
if (!node) return null;
const { type, $$typeof } = node;

switch (type || $$typeof) {
case AsyncMode: return 'AsyncMode';
case Fragment: return 'Fragment';
case StrictMode: return 'StrictMode';
case Profiler: return 'Profiler';
case Portal: return 'Portal';

default: {
const $$typeofType = type && type.$$typeof;

switch ($$typeofType) {
case ContextConsumer: return 'ContextConsumer';
case ContextProvider: return 'ContextProvider';
case ForwardRef: {
const name = type.render.displayName || functionName(type.render);
return name ? `ForwardRef(${name})` : 'ForwardRef';
}
default: return displayNameOfNode(node);
}
const nodeType = type || $$typeof;

// newer node types may be undefined, so only test if the nodeType exists
if (nodeType) {
switch (nodeType) {
case AsyncMode || NaN: return 'AsyncMode';
case Fragment || NaN: return 'Fragment';
case StrictMode || NaN: return 'StrictMode';
case Portal || NaN: return 'Portal';
default:
}
}

const $$typeofType = type && type.$$typeof;

switch ($$typeofType) {
case ContextConsumer || NaN: return 'ContextConsumer';
case ContextProvider || NaN: return 'ContextProvider';
case ForwardRef || NaN: {
const name = type.render.displayName || functionName(type.render);
return name ? `ForwardRef(${name})` : 'ForwardRef';
}
default: return displayNameOfNode(node);
}
}

Expand Down
42 changes: 23 additions & 19 deletions packages/enzyme-adapter-react-16/src/ReactSixteenAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -417,26 +417,30 @@ class ReactSixteenAdapter extends EnzymeAdapter {
if (!node) return null;
const { type, $$typeof } = node;

switch (type || $$typeof) {
case AsyncMode: return 'AsyncMode';
case Fragment: return 'Fragment';
case StrictMode: return 'StrictMode';
case Profiler: return 'Profiler';
case Portal: return 'Portal';

default: {
const $$typeofType = type && type.$$typeof;

switch ($$typeofType) {
case ContextConsumer: return 'ContextConsumer';
case ContextProvider: return 'ContextProvider';
case ForwardRef: {
const name = type.render.displayName || functionName(type.render);
return name ? `ForwardRef(${name})` : 'ForwardRef';
}
default: return displayNameOfNode(node);
}
const nodeType = type || $$typeof;

// newer node types may be undefined, so only test if the nodeType exists
if (nodeType) {
switch (nodeType) {
case AsyncMode || NaN: return 'AsyncMode';
case Fragment || NaN: return 'Fragment';
case StrictMode || NaN: return 'StrictMode';
case Profiler || NaN: return 'Profiler';
case Portal || NaN: return 'Portal';
default:
}
}

const $$typeofType = type && type.$$typeof;

switch ($$typeofType) {
case ContextConsumer || NaN: return 'ContextConsumer';
case ContextProvider || NaN: return 'ContextProvider';
case ForwardRef || NaN: {
const name = type.render.displayName || functionName(type.render);
return name ? `ForwardRef(${name})` : 'ForwardRef';
}
default: return displayNameOfNode(node);
}
}

Expand Down

0 comments on commit 5be7999

Please sign in to comment.