From e1a58890e6dc97090c71aeeac114253ab1047740 Mon Sep 17 00:00:00 2001 From: Yannick Croissant Date: Tue, 5 Mar 2019 15:20:07 +0100 Subject: [PATCH] [Fix] `sort-comp`: correctly recognize instance variables declared without explicit value Fixes #2183 --- lib/rules/sort-comp.js | 3 +-- tests/lib/rules/sort-comp.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/lib/rules/sort-comp.js b/lib/rules/sort-comp.js index 3997021ad0..9470725cf1 100644 --- a/lib/rules/sort-comp.js +++ b/lib/rules/sort-comp.js @@ -392,8 +392,7 @@ module.exports = { static: node.static, instanceVariable: !node.static && node.type === 'ClassProperty' && - node.value && - !astUtil.isFunctionLikeExpression(node.value), + (!node.value || !astUtil.isFunctionLikeExpression(node.value)), instanceMethod: !node.static && node.type === 'ClassProperty' && node.value && diff --git a/tests/lib/rules/sort-comp.js b/tests/lib/rules/sort-comp.js index d7e9b4f806..8db0142c6c 100644 --- a/tests/lib/rules/sort-comp.js +++ b/tests/lib/rules/sort-comp.js @@ -480,6 +480,29 @@ ruleTester.run('sort-comp', rule, { ' static getDerivedStateFromProps() {}', '}' ].join('\n') + }, { + code: ` + class MyComponent extends React.Component { + state = {}; + foo; + static propTypes; + + render() { + return null; + } + } + `, + parser: 'babel-eslint', + options: [{ + order: [ + 'state', + 'instance-variables', + 'static-methods', + 'lifecycle', + 'render', + 'everything-else' + ] + }] }], invalid: [{