Skip to content

Commit 1df6118

Browse files
authored
Merge pull request #953 from everdimension/default-skipshapeprops-enable
skipShapeProps should be enabled by default until it works properly
2 parents 9921674 + 2cd6e91 commit 1df6118

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

lib/rules/no-unused-prop-types.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,10 @@ module.exports = {
4747

4848
create: Components.detect(function(context, components, utils) {
4949

50+
var defaults = {skipShapeProps: true};
5051
var sourceCode = context.getSourceCode();
51-
var configuration = context.options[0] || {};
52-
var skipShapeProps = configuration.skipShapeProps || false;
52+
var configuration = Object.assign({}, defaults, context.options[0] || {});
53+
var skipShapeProps = configuration.skipShapeProps;
5354
var customValidators = configuration.customValidators || [];
5455
// Used to track the type annotations in scope.
5556
// Necessary because babel's scopes do not track type annotations.

tests/lib/rules/no-unused-prop-types.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ ruleTester.run('no-unused-prop-types', rule, {
257257
' b: React.PropTypes.string',
258258
'});'
259259
].join('\n'),
260+
options: [{skipShapeProps: false}],
260261
parserOptions: parserOptions
261262
}, {
262263
code: [
@@ -274,6 +275,7 @@ ruleTester.run('no-unused-prop-types', rule, {
274275
'};',
275276
'Hello.propTypes.a.b.c = React.PropTypes.number;'
276277
].join('\n'),
278+
options: [{skipShapeProps: false}],
277279
parserOptions: parserOptions
278280
}, {
279281
code: [
@@ -295,6 +297,7 @@ ruleTester.run('no-unused-prop-types', rule, {
295297
' )',
296298
'};'
297299
].join('\n'),
300+
options: [{skipShapeProps: false}],
298301
parserOptions: parserOptions
299302
}, {
300303
code: [
@@ -318,6 +321,7 @@ ruleTester.run('no-unused-prop-types', rule, {
318321
' )',
319322
'};'
320323
].join('\n'),
324+
options: [{skipShapeProps: false}],
321325
parserOptions: parserOptions
322326
}, {
323327
code: [
@@ -358,6 +362,7 @@ ruleTester.run('no-unused-prop-types', rule, {
358362
' ])',
359363
'};'
360364
].join('\n'),
365+
options: [{skipShapeProps: false}],
361366
parserOptions: parserOptions
362367
}, {
363368
code: [
@@ -458,6 +463,7 @@ ruleTester.run('no-unused-prop-types', rule, {
458463
' )',
459464
'};'
460465
].join('\n'),
466+
options: [{skipShapeProps: false}],
461467
parserOptions: parserOptions
462468
}, {
463469
code: [
@@ -490,6 +496,7 @@ ruleTester.run('no-unused-prop-types', rule, {
490496
' })',
491497
'};'
492498
].join('\n'),
499+
options: [{skipShapeProps: false}],
493500
parser: 'babel-eslint'
494501
}, {
495502
code: [
@@ -540,7 +547,7 @@ ruleTester.run('no-unused-prop-types', rule, {
540547
' }',
541548
'});'
542549
].join('\n'),
543-
options: [{customValidators: ['CustomValidator']}],
550+
options: [{customValidators: ['CustomValidator'], skipShapeProps: false}],
544551
parserOptions: parserOptions
545552
}, {
546553
code: [
@@ -555,7 +562,7 @@ ruleTester.run('no-unused-prop-types', rule, {
555562
' }',
556563
'});'
557564
].join('\n'),
558-
options: [{customValidators: ['CustomValidator']}],
565+
options: [{customValidators: ['CustomValidator'], skipShapeProps: false}],
559566
parserOptions: parserOptions
560567
}, {
561568
code: [
@@ -570,7 +577,7 @@ ruleTester.run('no-unused-prop-types', rule, {
570577
' }',
571578
'});'
572579
].join('\n'),
573-
options: [{customValidators: ['CustomValidator']}],
580+
options: [{customValidators: ['CustomValidator'], skipShapeProps: false}],
574581
parserOptions: parserOptions
575582
}, {
576583
code: [
@@ -1195,7 +1202,7 @@ ruleTester.run('no-unused-prop-types', rule, {
11951202
].join('\n'),
11961203
parser: 'babel-eslint'
11971204
}, {
1198-
// Destructured shape props can't be tested, unless we use `skipShapeProps`
1205+
// Destructured shape props are skipped by default
11991206
code: [
12001207
'class Hello extends Component {',
12011208
' static propTypes = {',
@@ -1210,7 +1217,6 @@ ruleTester.run('no-unused-prop-types', rule, {
12101217
' }',
12111218
'}'
12121219
].join('\n'),
1213-
options: [{skipShapeProps: true}],
12141220
parser: 'babel-eslint'
12151221
}, {
12161222
// Destructured props in componentWillReceiveProps shouldn't throw errors
@@ -1570,6 +1576,7 @@ ruleTester.run('no-unused-prop-types', rule, {
15701576
'};'
15711577
].join('\n'),
15721578
parserOptions: parserOptions,
1579+
options: [{skipShapeProps: false}],
15731580
errors: [{
15741581
message: '\'a.b\' PropType is defined but prop is never used'
15751582
}]
@@ -1590,6 +1597,7 @@ ruleTester.run('no-unused-prop-types', rule, {
15901597
'};'
15911598
].join('\n'),
15921599
parserOptions: parserOptions,
1600+
options: [{skipShapeProps: false}],
15931601
errors: [{
15941602
message: '\'a.b.c\' PropType is defined but prop is never used'
15951603
}]
@@ -1612,6 +1620,7 @@ ruleTester.run('no-unused-prop-types', rule, {
16121620
'};'
16131621
].join('\n'),
16141622
parserOptions: parserOptions,
1623+
options: [{skipShapeProps: false}],
16151624
errors: [
16161625
{message: '\'a.*.unused\' PropType is defined but prop is never used'}
16171626
]
@@ -1636,6 +1645,7 @@ ruleTester.run('no-unused-prop-types', rule, {
16361645
'};'
16371646
].join('\n'),
16381647
parserOptions: parserOptions,
1648+
options: [{skipShapeProps: false}],
16391649
errors: [
16401650
{message: '\'a.*.unused\' PropType is defined but prop is never used'}
16411651
]
@@ -1662,6 +1672,7 @@ ruleTester.run('no-unused-prop-types', rule, {
16621672
'};'
16631673
].join('\n'),
16641674
parserOptions: parserOptions,
1675+
options: [{skipShapeProps: false}],
16651676
errors: [
16661677
{message: '\'a.unused\' PropType is defined but prop is never used'},
16671678
{message: '\'a.anotherunused\' PropType is defined but prop is never used'}
@@ -1699,6 +1710,7 @@ ruleTester.run('no-unused-prop-types', rule, {
16991710
'};'
17001711
].join('\n'),
17011712
parserOptions: parserOptions,
1713+
options: [{skipShapeProps: false}],
17021714
errors: [
17031715
{message: '\'arr.*.some.unused\' PropType is defined but prop is never used'}
17041716
]

0 commit comments

Comments
 (0)