Skip to content

Commit

Permalink
[enzyme-adapter-react-16] [fix] properly fix finding memo(SFC) compon…
Browse files Browse the repository at this point in the history
…ents
  • Loading branch information
eps1lon authored and ljharb committed Apr 3, 2019
1 parent 4149a21 commit 3045286
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
4 changes: 2 additions & 2 deletions packages/enzyme-adapter-react-16/src/ReactSixteenAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ function toTree(vnode) {
}
return {
nodeType: 'function',
type: node.elementType.type,
type: node.elementType,
props: { ...node.memoizedProps },
key: ensureKeyOrUndefined(node.key),
ref: node.ref,
Expand Down Expand Up @@ -648,7 +648,7 @@ class ReactSixteenAdapter extends EnzymeAdapter {
switch ($$typeofType) {
case ContextConsumer || NaN: return 'ContextConsumer';
case ContextProvider || NaN: return 'ContextProvider';
case Memo || NaN: return displayNameOfNode(type.type);
case Memo || NaN: return displayNameOfNode(type);
case ForwardRef || NaN: {
if (type.displayName) {
return type.displayName;
Expand Down
23 changes: 18 additions & 5 deletions packages/enzyme-test-suite/test/shared/methods/find.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -858,10 +858,14 @@ export default function describeFind({

describeIf(is('>= 16.6'), 'React.memo', () => {
it('works with an SFC', () => {
const InnerComp = () => <div><span>Hello</span></div>;
function InnerComp({ message }) {
return <div><span>{message}</span></div>;
}
const InnerMemo = React.memo(InnerComp);
const InnerFoo = ({ foo }) => (
<div>
<InnerComp />
<InnerComp message="Hello" />
<InnerMemo message="find me?" />
<div className="bar">bar</div>
<div className="qoo">{foo}</div>
</div>
Expand All @@ -871,7 +875,8 @@ export default function describeFind({
const wrapper = Wrap(<Foo foo="qux" />);
const expectedDebug = isShallow
? `<div>
<InnerComp />
<InnerComp message="Hello" />
<InnerComp message="find me?" />
<div className="bar">
bar
</div>
Expand All @@ -881,13 +886,20 @@ export default function describeFind({
</div>`
: `<InnerFoo foo="qux">
<div>
<InnerComp>
<InnerComp message="Hello">
<div>
<span>
Hello
</span>
</div>
</InnerComp>
<InnerComp message="find me?">
<div>
<span>
find me?
</span>
</div>
</InnerComp>
<div className="bar">
bar
</div>
Expand All @@ -897,9 +909,10 @@ export default function describeFind({
</div>
</InnerFoo>`;
expect(wrapper.debug()).to.equal(expectedDebug);
expect(wrapper.find('InnerComp')).to.have.lengthOf(1);
expect(wrapper.find('InnerComp')).to.have.lengthOf(2);
expect(wrapper.find('.bar')).to.have.lengthOf(1);
expect(wrapper.find('.qoo').text()).to.equal('qux');
expect(wrapper.find(InnerMemo)).to.have.lengthOf(1);
});

it('works with a class component', () => {
Expand Down

0 comments on commit 3045286

Please sign in to comment.