@@ -240,6 +240,34 @@ ruleTester.run('sort-comp', rule, {
240
240
'render'
241
241
]
242
242
} ]
243
+ } , {
244
+ // Non-react classes should be ignored, even in expressions
245
+ code : [
246
+ 'return class Hello {' ,
247
+ ' render() {' ,
248
+ ' return <div>{this.props.text}</div>;' ,
249
+ ' }' ,
250
+ ' props: { text: string };' ,
251
+ ' constructor() {}' ,
252
+ ' state: Object = {};' ,
253
+ '}'
254
+ ] . join ( '\n' ) ,
255
+ parser : 'babel-eslint' ,
256
+ parserOptions : parserOptions
257
+ } , {
258
+ // Non-react classes should be ignored, even in expressions
259
+ code : [
260
+ 'return class {' ,
261
+ ' render() {' ,
262
+ ' return <div>{this.props.text}</div>;' ,
263
+ ' }' ,
264
+ ' props: { text: string };' ,
265
+ ' constructor() {}' ,
266
+ ' state: Object = {};' ,
267
+ '}'
268
+ ] . join ( '\n' ) ,
269
+ parser : 'babel-eslint' ,
270
+ parserOptions : parserOptions
243
271
} ] ,
244
272
245
273
invalid : [ {
@@ -275,6 +303,20 @@ ruleTester.run('sort-comp', rule, {
275
303
'});'
276
304
] . join ( '\n' ) ,
277
305
errors : [ { message : 'render should be placed after onClick' } ]
306
+ } , {
307
+ // Must force a custom method to be placed before render, even in function
308
+ code : [
309
+ 'var Hello = () => {' ,
310
+ ' return class Test extends React.Component {' ,
311
+ ' render () {' ,
312
+ ' return <div>Hello</div>;' ,
313
+ ' }' ,
314
+ ' onClick () {}' ,
315
+ ' }' ,
316
+ '};'
317
+ ] . join ( '\n' ) ,
318
+ parserOptions : parserOptions ,
319
+ errors : [ { message : 'render should be placed after onClick' } ]
278
320
} , {
279
321
// Must force a custom method to be placed after render if no 'everything-else' group is specified
280
322
code : [
0 commit comments