@@ -387,6 +387,22 @@ eslintTester.run('no-unused-state', rule, {
387
387
return <SomeComponent foo={foo} />;
388
388
}
389
389
}` ,
390
+ `class NonRenderClassMethodFalseNegativeTest extends React.Component {
391
+ constructor() {
392
+ this.state = { foo: 0, bar: 0 };
393
+ }
394
+ doSomething() {
395
+ const { foo } = this.state;
396
+ return this.state.foo;
397
+ }
398
+ doSomethingElse() {
399
+ const { state: { bar }} = this;
400
+ return bar;
401
+ }
402
+ render() {
403
+ return <SomeComponent />;
404
+ }
405
+ }` ,
390
406
{
391
407
code : `class TypeCastExpressionSpreadFalseNegativeTest extends React.Component {
392
408
constructor() {
@@ -397,6 +413,72 @@ eslintTester.run('no-unused-state', rule, {
397
413
}
398
414
}` ,
399
415
parser : 'babel-eslint'
416
+ } ,
417
+ {
418
+ code : `class ArrowFunctionClassMethodDestructuringFalseNegativeTest extends React.Component {
419
+ constructor() {
420
+ this.state = { foo: 0 };
421
+ }
422
+
423
+ doSomething = () => {
424
+ const { state: { foo } } = this;
425
+
426
+ return foo;
427
+ }
428
+
429
+ render() {
430
+ return <SomeComponent />;
431
+ }
432
+ }` ,
433
+ parser : 'babel-eslint'
434
+ } ,
435
+ {
436
+ code : `class ArrowFunctionClassMethodWithClassPropertyTransformFalseNegativeTest extends React.Component {
437
+ state = { foo: 0 };
438
+
439
+ doSomething = () => {
440
+ const { state:{ foo } } = this;
441
+
442
+ return foo;
443
+ }
444
+
445
+ render() {
446
+ return <SomeComponent />;
447
+ }
448
+ }` ,
449
+ parser : 'babel-eslint'
450
+ } ,
451
+ {
452
+ code : `class ArrowFunctionClassMethodDeepDestructuringFalseNegativeTest extends React.Component {
453
+ state = { foo: { bar: 0 } };
454
+
455
+ doSomething = () => {
456
+ const { state: { foo: { bar }}} = this;
457
+
458
+ return bar;
459
+ }
460
+
461
+ render() {
462
+ return <SomeComponent />;
463
+ }
464
+ }` ,
465
+ parser : 'babel-eslint'
466
+ } ,
467
+ {
468
+ code : `class ArrowFunctionClassMethodDestructuringAssignmentFalseNegativeTest extends React.Component {
469
+ state = { foo: 0 };
470
+
471
+ doSomething = () => {
472
+ const { state: { foo: bar }} = this;
473
+
474
+ return bar;
475
+ }
476
+
477
+ render() {
478
+ return <SomeComponent />;
479
+ }
480
+ }` ,
481
+ parser : 'babel-eslint'
400
482
}
401
483
] ,
402
484
@@ -642,6 +724,21 @@ eslintTester.run('no-unused-state', rule, {
642
724
}` ,
643
725
errors : getErrorMessages ( [ 'foo' ] )
644
726
} ,
727
+ {
728
+ code : `class UnusedStateArrowFunctionMethodTest extends React.Component {
729
+ constructor() {
730
+ this.state = { foo: 0 };
731
+ }
732
+ doSomething = () => {
733
+ return null;
734
+ }
735
+ render() {
736
+ return <SomeComponent />;
737
+ }
738
+ }` ,
739
+ errors : getErrorMessages ( [ 'foo' ] ) ,
740
+ parser : 'babel-eslint'
741
+ } ,
645
742
{
646
743
code : `class TypeCastExpressionTest extends React.Component {
647
744
constructor() {
0 commit comments