From d2d07c5158ce8d9299921b05a18599604806739a Mon Sep 17 00:00:00 2001 From: Sebastian Silbermann Date: Tue, 9 Jul 2019 11:23:06 +0000 Subject: [PATCH] fix: Hocs resolving intermediate values --- src/utils/__tests__/resolveHOC-test.js | 10 ++++++++++ src/utils/resolveHOC.js | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/utils/__tests__/resolveHOC-test.js b/src/utils/__tests__/resolveHOC-test.js index 27df4fd912b..c805f6655c2 100644 --- a/src/utils/__tests__/resolveHOC-test.js +++ b/src/utils/__tests__/resolveHOC-test.js @@ -47,4 +47,14 @@ describe('resolveHOC', () => { ); expect(resolveHOC(path)).toEqualASTNode(builders.literal(42)); }); + + it('resolves intermediate hocs', () => { + const path = parse( + [ + 'const Component = React.memo(42);', + 'hoc()(Component);', + ].join('\n'), + ); + expect(resolveHOC(path)).toEqualASTNode(builders.literal(42)); + }); }); diff --git a/src/utils/resolveHOC.js b/src/utils/resolveHOC.js index 31e0628c82b..a17d2637d76 100644 --- a/src/utils/resolveHOC.js +++ b/src/utils/resolveHOC.js @@ -10,6 +10,7 @@ import types from 'ast-types'; import isReactCreateClassCall from './isReactCreateClassCall'; import isReactForwardRefCall from './isReactForwardRefCall'; +import resolveToValue from './resolveToValue'; const { namedTypes: t } = types; @@ -27,7 +28,7 @@ export default function resolveHOC(path: NodePath): NodePath { !isReactForwardRefCall(path) ) { if (node.arguments.length) { - return resolveHOC(path.get('arguments', node.arguments.length - 1)); + return resolveHOC(resolveToValue(path.get('arguments', node.arguments.length - 1))); } }