From ab1631d9649e7e26f81678de75f774e03821a69b Mon Sep 17 00:00:00 2001 From: Roy Sutton Date: Tue, 21 Feb 2017 00:14:38 -0800 Subject: [PATCH] Fix sort-comp ClassExpression Fixes #1076. Also adds test. --- lib/rules/sort-comp.js | 1 + tests/lib/rules/sort-comp.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/rules/sort-comp.js b/lib/rules/sort-comp.js index 4c324ec75b..dd52b1ef41 100644 --- a/lib/rules/sort-comp.js +++ b/lib/rules/sort-comp.js @@ -291,6 +291,7 @@ module.exports = { */ function getComponentProperties(node) { switch (node.type) { + case 'ClassExpression': case 'ClassDeclaration': return node.body.body; case 'ObjectExpression': diff --git a/tests/lib/rules/sort-comp.js b/tests/lib/rules/sort-comp.js index 0ccf42f7da..c7871e6516 100644 --- a/tests/lib/rules/sort-comp.js +++ b/tests/lib/rules/sort-comp.js @@ -286,6 +286,20 @@ ruleTester.run('sort-comp', rule, { ].join('\n'), parserOptions: parserOptions, errors: [{message: 'render should be placed after onClick'}] + }, { + // Must force a custom method to be placed before render, even in function + code: [ + 'var Hello = () => {', + ' return class Test extends React.Component {', + ' render () {', + ' return
Hello
;', + ' }', + ' onClick () {}', + ' }', + '};' + ].join('\n'), + parserOptions: parserOptions, + errors: [{message: 'render should be placed after onClick'}] }, { // Must force a custom method to be placed after render if no 'everything-else' group is specified code: [