@@ -46,6 +46,70 @@ eslintTester.run('no-unused-state', rule, {
46
46
return <SomeComponent foo={this.state.foo} />;
47
47
}
48
48
});` ,
49
+ `var ComputedKeyFromVariableTest = createReactClass({
50
+ getInitialState: function() {
51
+ return { [foo]: 0 };
52
+ },
53
+ render: function() {
54
+ return <SomeComponent />;
55
+ }
56
+ });` ,
57
+ `var ComputedKeyFromBooleanLiteralTest = createReactClass({
58
+ getInitialState: function() {
59
+ return { [true]: 0 };
60
+ },
61
+ render: function() {
62
+ return <SomeComponent foo={this.state[true]} />;
63
+ }
64
+ });` ,
65
+ `var ComputedKeyFromNumberLiteralTest = createReactClass({
66
+ getInitialState: function() {
67
+ return { [123]: 0 };
68
+ },
69
+ render: function() {
70
+ return <SomeComponent foo={this.state[123]} />;
71
+ }
72
+ });` ,
73
+ `var ComputedKeyFromExpressionTest = createReactClass({
74
+ getInitialState: function() {
75
+ return { [foo + bar]: 0 };
76
+ },
77
+ render: function() {
78
+ return <SomeComponent />;
79
+ }
80
+ });` ,
81
+ `var ComputedKeyFromBinaryExpressionTest = createReactClass({
82
+ getInitialState: function() {
83
+ return { ['foo' + 'bar' * 8]: 0 };
84
+ },
85
+ render: function() {
86
+ return <SomeComponent />;
87
+ }
88
+ });` ,
89
+ `var ComputedKeyFromStringLiteralTest = createReactClass({
90
+ getInitialState: function() {
91
+ return { ['foo']: 0 };
92
+ },
93
+ render: function() {
94
+ return <SomeComponent foo={this.state.foo} />;
95
+ }
96
+ });` ,
97
+ `var ComputedKeyFromTemplateLiteralTest = createReactClass({
98
+ getInitialState: function() {
99
+ return { [\`foo\${bar}\`]: 0 };
100
+ },
101
+ render: function() {
102
+ return <SomeComponent />;
103
+ }
104
+ });` ,
105
+ `var ComputedKeyFromTemplateLiteralTest = createReactClass({
106
+ getInitialState: function() {
107
+ return { [\`foo\`]: 0 };
108
+ },
109
+ render: function() {
110
+ return <SomeComponent foo={this.state['foo']} />;
111
+ }
112
+ });` ,
49
113
`var GetInitialStateMethodTest = createReactClass({
50
114
getInitialState() {
51
115
return { foo: 0 };
@@ -86,6 +150,70 @@ eslintTester.run('no-unused-state', rule, {
86
150
return <SomeComponent foo={this.state.foo} />;
87
151
}
88
152
}` ,
153
+ `class ComputedKeyFromVariableTest extends React.Component {
154
+ constructor() {
155
+ this.state = { [foo]: 0 };
156
+ }
157
+ render() {
158
+ return <SomeComponent />;
159
+ }
160
+ }` ,
161
+ `class ComputedKeyFromBooleanLiteralTest extends React.Component {
162
+ constructor() {
163
+ this.state = { [false]: 0 };
164
+ }
165
+ render() {
166
+ return <SomeComponent foo={this.state['false']} />;
167
+ }
168
+ }` ,
169
+ `class ComputedKeyFromNumberLiteralTest extends React.Component {
170
+ constructor() {
171
+ this.state = { [345]: 0 };
172
+ }
173
+ render() {
174
+ return <SomeComponent foo={this.state[345]} />;
175
+ }
176
+ }` ,
177
+ `class ComputedKeyFromExpressionTest extends React.Component {
178
+ constructor() {
179
+ this.state = { [foo + bar]: 0 };
180
+ }
181
+ render() {
182
+ return <SomeComponent />;
183
+ }
184
+ }` ,
185
+ `class ComputedKeyFromBinaryExpressionTest extends React.Component {
186
+ constructor() {
187
+ this.state = { [1 + 2 * 8]: 0 };
188
+ }
189
+ render() {
190
+ return <SomeComponent />;
191
+ }
192
+ }` ,
193
+ `class ComputedKeyFromStringLiteralTest extends React.Component {
194
+ constructor() {
195
+ this.state = { ['foo']: 0 };
196
+ }
197
+ render() {
198
+ return <SomeComponent foo={this.state.foo} />;
199
+ }
200
+ }` ,
201
+ `class ComputedKeyFromTemplateLiteralTest extends React.Component {
202
+ constructor() {
203
+ this.state = { [\`foo\${bar}\`]: 0 };
204
+ }
205
+ render() {
206
+ return <SomeComponent />;
207
+ }
208
+ }` ,
209
+ `class ComputedKeyFromTemplateLiteralTest extends React.Component {
210
+ constructor() {
211
+ this.state = { [\`foo\`]: 0 };
212
+ }
213
+ render() {
214
+ return <SomeComponent foo={this.state.foo} />;
215
+ }
216
+ }` ,
89
217
`class SetStateTest extends React.Component {
90
218
onFooChange(newFoo) {
91
219
this.setState({ foo: newFoo });
@@ -284,6 +412,50 @@ eslintTester.run('no-unused-state', rule, {
284
412
})` ,
285
413
errors : getErrorMessages ( [ 'foo' ] )
286
414
} ,
415
+ {
416
+ code : `var UnusedComputedStringLiteralKeyStateTest = createReactClass({
417
+ getInitialState: function() {
418
+ return { ['foo']: 0 };
419
+ },
420
+ render: function() {
421
+ return <SomeComponent />;
422
+ }
423
+ })` ,
424
+ errors : getErrorMessages ( [ 'foo' ] )
425
+ } ,
426
+ {
427
+ code : `var UnusedComputedTemplateLiteralKeyStateTest = createReactClass({
428
+ getInitialState: function() {
429
+ return { [\`foo\`]: 0 };
430
+ },
431
+ render: function() {
432
+ return <SomeComponent />;
433
+ }
434
+ })` ,
435
+ errors : getErrorMessages ( [ 'foo' ] )
436
+ } ,
437
+ {
438
+ code : `var UnusedComputedNumberLiteralKeyStateTest = createReactClass({
439
+ getInitialState: function() {
440
+ return { [123]: 0 };
441
+ },
442
+ render: function() {
443
+ return <SomeComponent />;
444
+ }
445
+ })` ,
446
+ errors : getErrorMessages ( [ '123' ] )
447
+ } ,
448
+ {
449
+ code : `var UnusedComputedBooleanLiteralKeyStateTest = createReactClass({
450
+ getInitialState: function() {
451
+ return { [true]: 0 };
452
+ },
453
+ render: function() {
454
+ return <SomeComponent />;
455
+ }
456
+ })` ,
457
+ errors : getErrorMessages ( [ 'true' ] )
458
+ } ,
287
459
{
288
460
code : `var UnusedGetInitialStateMethodTest = createReactClass({
289
461
getInitialState() {
@@ -338,6 +510,66 @@ eslintTester.run('no-unused-state', rule, {
338
510
errors : getErrorMessages ( [ 'foo' ] ) ,
339
511
parser : 'babel-eslint'
340
512
} ,
513
+ {
514
+ code : `class UnusedComputedStringLiteralKeyStateTest extends React.Component {
515
+ state = { ['foo']: 0 };
516
+ render() {
517
+ return <SomeComponent />;
518
+ }
519
+ }` ,
520
+ errors : getErrorMessages ( [ 'foo' ] ) ,
521
+ parser : 'babel-eslint'
522
+ } ,
523
+ {
524
+ code : `class UnusedComputedTemplateLiteralKeyStateTest extends React.Component {
525
+ state = { [\`foo\`]: 0 };
526
+ render() {
527
+ return <SomeComponent />;
528
+ }
529
+ }` ,
530
+ errors : getErrorMessages ( [ 'foo' ] ) ,
531
+ parser : 'babel-eslint'
532
+ } ,
533
+ {
534
+ code : `class UnusedComputedTemplateLiteralKeyStateTest extends React.Component {
535
+ state = { [\`foo \\n bar\`]: 0 };
536
+ render() {
537
+ return <SomeComponent />;
538
+ }
539
+ }` ,
540
+ errors : getErrorMessages ( [ 'foo \\n bar' ] ) ,
541
+ parser : 'babel-eslint'
542
+ } ,
543
+ {
544
+ code : `class UnusedComputedBooleanLiteralKeyStateTest extends React.Component {
545
+ state = { [true]: 0 };
546
+ render() {
547
+ return <SomeComponent />;
548
+ }
549
+ }` ,
550
+ errors : getErrorMessages ( [ 'true' ] ) ,
551
+ parser : 'babel-eslint'
552
+ } ,
553
+ {
554
+ code : `class UnusedComputedNumberLiteralKeyStateTest extends React.Component {
555
+ state = { [123]: 0 };
556
+ render() {
557
+ return <SomeComponent />;
558
+ }
559
+ }` ,
560
+ errors : getErrorMessages ( [ '123' ] ) ,
561
+ parser : 'babel-eslint'
562
+ } ,
563
+ {
564
+ code : `class UnusedComputedFloatLiteralKeyStateTest extends React.Component {
565
+ state = { [123.12]: 0 };
566
+ render() {
567
+ return <SomeComponent />;
568
+ }
569
+ }` ,
570
+ errors : getErrorMessages ( [ '123.12' ] ) ,
571
+ parser : 'babel-eslint'
572
+ } ,
341
573
{
342
574
code : `class UnusedStateWhenPropsAreSpreadTest extends React.Component {
343
575
constructor() {
0 commit comments