From a7a7d75abaf13168c213a3e8639015d5aa3e76e5 Mon Sep 17 00:00:00 2001 From: eps1lon Date: Tue, 2 Aug 2022 22:36:31 +0200 Subject: [PATCH] Fix displayNameOfNode for Memo components --- .../src/ReactSeventeenAdapter.js | 11 +++++++---- packages/enzyme-test-suite/test/Utils-spec.jsx | 6 +----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/enzyme-adapter-react-17/src/ReactSeventeenAdapter.js b/packages/enzyme-adapter-react-17/src/ReactSeventeenAdapter.js index e3cd669be..d02006753 100644 --- a/packages/enzyme-adapter-react-17/src/ReactSeventeenAdapter.js +++ b/packages/enzyme-adapter-react-17/src/ReactSeventeenAdapter.js @@ -514,7 +514,7 @@ class ReactSeventeenAdapter extends EnzymeAdapter { rootNode, nodeHierarchy, nodeTypeFromType, - adapter.displayNameOfNode, + adapter.displayNameOfNode.bind(adapter), catchingType, ); }, @@ -692,7 +692,7 @@ class ReactSeventeenAdapter extends EnzymeAdapter { cachedNode, nodeHierarchy.concat(cachedNode), nodeTypeFromType, - adapter.displayNameOfNode, + adapter.displayNameOfNode.bind(adapter), cachedNode.type, ); }, @@ -818,8 +818,11 @@ class ReactSeventeenAdapter extends EnzymeAdapter { case ContextConsumer || NaN: return 'ContextConsumer'; case ContextProvider || NaN: return 'ContextProvider'; case Memo || NaN: { - const nodeName = displayNameOfNode(node); - return typeof nodeName === 'string' ? nodeName : `Memo(${displayNameOfNode(type)})`; + if (type.displayName) { + return type.displayName; + } + const name = this.displayNameOfNode({ type: type.type }); + return name ? `Memo(${name})` : 'Memo'; } case ForwardRef || NaN: { if (type.displayName) { diff --git a/packages/enzyme-test-suite/test/Utils-spec.jsx b/packages/enzyme-test-suite/test/Utils-spec.jsx index 569a299ac..f80991553 100644 --- a/packages/enzyme-test-suite/test/Utils-spec.jsx +++ b/packages/enzyme-test-suite/test/Utils-spec.jsx @@ -600,11 +600,7 @@ describe('Utils', () => { Foo.displayName = 'CustomWrapper'; const MemoForwardFoo = React.memo(React.forwardRef(Foo)); - if (is('>= 17')) { - expect(adapter.displayNameOfNode()).to.equal('Memo([object Object])'); - } else { - expect(adapter.displayNameOfNode()).to.equal('Memo(ForwardRef(CustomWrapper))'); - } + expect(adapter.displayNameOfNode()).to.equal('Memo(ForwardRef(CustomWrapper))'); }); }); });