@@ -557,26 +557,6 @@ ruleTester.run('no-unused-prop-types', rule, {
557
557
'});'
558
558
] . join ( '\n' ) ,
559
559
options : [ { customValidators : [ 'CustomValidator' ] } ]
560
- } , {
561
- code : [
562
- 'class Comp1 extends Component {' ,
563
- ' render() {' ,
564
- ' return <span />;' ,
565
- ' }' ,
566
- '}' ,
567
- 'Comp1.propTypes = {' ,
568
- ' prop1: PropTypes.number' ,
569
- '};' ,
570
- 'class Comp2 extends Component {' ,
571
- ' render() {' ,
572
- ' return <span />;' ,
573
- ' }' ,
574
- '}' ,
575
- 'Comp2.propTypes = {' ,
576
- ' prop2: PropTypes.arrayOf(Comp1.propTypes.prop1)' ,
577
- '};'
578
- ] . join ( '\n' ) ,
579
- parser : 'babel-eslint'
580
560
} , {
581
561
code : [
582
562
'const SomeComponent = createReactClass({' ,
@@ -782,54 +762,6 @@ ruleTester.run('no-unused-prop-types', rule, {
782
762
' }' ,
783
763
'});'
784
764
] . join ( '\n' )
785
- } , {
786
- code : [
787
- 'const statelessComponent = (props) => {' ,
788
- ' const subRender = () => {' ,
789
- ' return <span>{props.someProp}</span>;' ,
790
- ' };' ,
791
- ' return <div>{subRender()}</div>;' ,
792
- '};' ,
793
- 'statelessComponent.propTypes = {' ,
794
- ' someProp: PropTypes.string' ,
795
- '};'
796
- ] . join ( '\n' )
797
- } , {
798
- code : [
799
- 'const statelessComponent = ({ someProp }) => {' ,
800
- ' const subRender = () => {' ,
801
- ' return <span>{someProp}</span>;' ,
802
- ' };' ,
803
- ' return <div>{subRender()}</div>;' ,
804
- '};' ,
805
- 'statelessComponent.propTypes = {' ,
806
- ' someProp: PropTypes.string' ,
807
- '};'
808
- ] . join ( '\n' )
809
- } , {
810
- code : [
811
- 'const statelessComponent = function({ someProp }) {' ,
812
- ' const subRender = () => {' ,
813
- ' return <span>{someProp}</span>;' ,
814
- ' };' ,
815
- ' return <div>{subRender()}</div>;' ,
816
- '};' ,
817
- 'statelessComponent.propTypes = {' ,
818
- ' someProp: PropTypes.string' ,
819
- '};'
820
- ] . join ( '\n' )
821
- } , {
822
- code : [
823
- 'function statelessComponent({ someProp }) {' ,
824
- ' const subRender = () => {' ,
825
- ' return <span>{someProp}</span>;' ,
826
- ' };' ,
827
- ' return <div>{subRender()}</div>;' ,
828
- '};' ,
829
- 'statelessComponent.propTypes = {' ,
830
- ' someProp: PropTypes.string' ,
831
- '};'
832
- ] . join ( '\n' )
833
765
} , {
834
766
code : [
835
767
'function notAComponent({ something }) {' ,
@@ -3215,6 +3147,49 @@ ruleTester.run('no-unused-prop-types', rule, {
3215
3147
line : 11 ,
3216
3148
column : 8
3217
3149
} ]
3150
+ } , { // None of the props are used issue #1162
3151
+ code : [
3152
+ 'import React from "react"; ' ,
3153
+ 'var Hello = React.createReactClass({' ,
3154
+ ' propTypes: {' ,
3155
+ ' name: React.PropTypes.string' ,
3156
+ ' },' ,
3157
+ ' render: function() {' ,
3158
+ ' return <div>Hello Bob</div>;' ,
3159
+ ' }' ,
3160
+ '});'
3161
+ ] . join ( '\n' ) ,
3162
+ errors : [ {
3163
+ message : '\'name\' PropType is defined but prop is never used'
3164
+ } ]
3165
+ } , {
3166
+ code : [
3167
+ 'class Comp1 extends Component {' ,
3168
+ ' render() {' ,
3169
+ ' return <span />;' ,
3170
+ ' }' ,
3171
+ '}' ,
3172
+ 'Comp1.propTypes = {' ,
3173
+ ' prop1: PropTypes.number' ,
3174
+ '};' ,
3175
+ 'class Comp2 extends Component {' ,
3176
+ ' render() {' ,
3177
+ ' return <span />;' ,
3178
+ ' }' ,
3179
+ '}' ,
3180
+ 'Comp2.propTypes = {' ,
3181
+ ' prop2: PropTypes.arrayOf(Comp1.propTypes.prop1)' ,
3182
+ '};'
3183
+ ] . join ( '\n' ) ,
3184
+ parser : 'babel-eslint' ,
3185
+ errors : [ {
3186
+ message : '\'prop1\' PropType is defined but prop is never used'
3187
+ } , {
3188
+ message : '\'prop2\' PropType is defined but prop is never used'
3189
+ } , {
3190
+ message : '\'prop2.*\' PropType is defined but prop is never used'
3191
+ } ]
3192
+
3218
3193
}
3219
3194
/* , {
3220
3195
// Enable this when the following issue is fixed
0 commit comments