Skip to content

Commit 41bf606

Browse files
committed
[enzyme-adapter-react-16] [fix] isEmptyRender: properly detect memoized SFCs returning null
Fixes #2377.
1 parent 7e286a5 commit 41bf606

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

packages/enzyme-adapter-react-16/src/ReactSixteenAdapter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ function toTree(vnode) {
250250
case FiberTags.MemoSFC: {
251251
let renderedNodes = flatten(nodeAndSiblingsArray(node.child).map(toTree));
252252
if (renderedNodes.length === 0) {
253-
renderedNodes = [node.memoizedProps.children];
253+
renderedNodes = childrenToTree(node.memoizedProps.children);
254254
}
255255
return {
256256
nodeType: 'function',

packages/enzyme-test-suite/test/shared/methods/isEmptyRender.jsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { is } from '../../_helpers/version';
1111

1212
import {
1313
createClass,
14+
memo,
1415
} from '../../_helpers/react-compat';
1516

1617
export default function describeIsEmptyRender({
@@ -178,5 +179,12 @@ export default function describeIsEmptyRender({
178179
expect(elements).to.have.lengthOf(3);
179180
expect(elements.isEmptyRender()).to.equal(!isShallow);
180181
});
182+
183+
it('works on a memoized functional component', () => {
184+
const Component = memo(() => null);
185+
const wrapper = Wrap(<Component />);
186+
expect(wrapper.debug()).to.equal(isShallow ? '' : '<Memo() />');
187+
expect(wrapper.isEmptyRender()).to.equal(true);
188+
});
181189
});
182190
}

0 commit comments

Comments
 (0)