@@ -1504,6 +1504,24 @@ ruleTester.run('no-unused-prop-types', rule, {
1504
1504
'}'
1505
1505
] . join ( '\n' ) ,
1506
1506
parser : 'babel-eslint'
1507
+ } , {
1508
+ code : [
1509
+ 'class Hello extends Component {' ,
1510
+ ' shouldComponentUpdate (props) {' ,
1511
+ ' if (props.foo) {' ,
1512
+ ' return true;' ,
1513
+ ' }' ,
1514
+ ' }' ,
1515
+ '' ,
1516
+ ' render() {' ,
1517
+ ' return (<div>{this.props.bar}</div>);' ,
1518
+ ' }' ,
1519
+ '}' ,
1520
+ 'Hello.propTypes = {' ,
1521
+ ' foo: PropTypes.string,' ,
1522
+ ' bar: PropTypes.string,' ,
1523
+ '};'
1524
+ ] . join ( '\n' )
1507
1525
} , {
1508
1526
code : [
1509
1527
'class Hello extends Component {' ,
@@ -1524,6 +1542,24 @@ ruleTester.run('no-unused-prop-types', rule, {
1524
1542
'}'
1525
1543
] . join ( '\n' ) ,
1526
1544
parser : 'babel-eslint'
1545
+ } , {
1546
+ code : [
1547
+ 'class Hello extends Component {' ,
1548
+ ' componentWillUpdate (props) {' ,
1549
+ ' if (props.foo) {' ,
1550
+ ' return true;' ,
1551
+ ' }' ,
1552
+ ' }' ,
1553
+ '' ,
1554
+ ' render() {' ,
1555
+ ' return (<div>{this.props.bar}</div>);' ,
1556
+ ' }' ,
1557
+ '}' ,
1558
+ 'Hello.propTypes = {' ,
1559
+ ' foo: PropTypes.string,' ,
1560
+ ' bar: PropTypes.string,' ,
1561
+ '};'
1562
+ ] . join ( '\n' )
1527
1563
} , {
1528
1564
code : [
1529
1565
'class Hello extends Component {' ,
@@ -1545,6 +1581,24 @@ ruleTester.run('no-unused-prop-types', rule, {
1545
1581
'}'
1546
1582
] . join ( '\n' ) ,
1547
1583
parser : 'babel-eslint'
1584
+ } , {
1585
+ code : [
1586
+ 'class Hello extends Component {' ,
1587
+ ' componentWillReceiveProps (props) {' ,
1588
+ ' if (props.foo) {' ,
1589
+ ' return true;' ,
1590
+ ' }' ,
1591
+ ' }' ,
1592
+ '' ,
1593
+ ' render() {' ,
1594
+ ' return (<div>{this.props.bar}</div>);' ,
1595
+ ' }' ,
1596
+ '}' ,
1597
+ 'Hello.propTypes = {' ,
1598
+ ' foo: PropTypes.string,' ,
1599
+ ' bar: PropTypes.string,' ,
1600
+ '};'
1601
+ ] . join ( '\n' )
1548
1602
} , {
1549
1603
code : [
1550
1604
'class Hello extends Component {' ,
@@ -1565,6 +1619,24 @@ ruleTester.run('no-unused-prop-types', rule, {
1565
1619
'}'
1566
1620
] . join ( '\n' ) ,
1567
1621
parser : 'babel-eslint'
1622
+ } , {
1623
+ code : [
1624
+ 'class Hello extends Component {' ,
1625
+ ' shouldComponentUpdate (nextProps) {' ,
1626
+ ' if (nextProps.foo) {' ,
1627
+ ' return true;' ,
1628
+ ' }' ,
1629
+ ' }' ,
1630
+ '' ,
1631
+ ' render() {' ,
1632
+ ' return (<div>{this.props.bar}</div>);' ,
1633
+ ' }' ,
1634
+ '}' ,
1635
+ 'Hello.propTypes = {' ,
1636
+ ' foo: PropTypes.string,' ,
1637
+ ' bar: PropTypes.string,' ,
1638
+ '};'
1639
+ ] . join ( '\n' )
1568
1640
} , {
1569
1641
code : [
1570
1642
'class Hello extends Component {' ,
@@ -1585,6 +1657,24 @@ ruleTester.run('no-unused-prop-types', rule, {
1585
1657
'}'
1586
1658
] . join ( '\n' ) ,
1587
1659
parser : 'babel-eslint'
1660
+ } , {
1661
+ code : [
1662
+ 'class Hello extends Component {' ,
1663
+ ' componentWillUpdate (nextProps) {' ,
1664
+ ' if (nextProps.foo) {' ,
1665
+ ' return true;' ,
1666
+ ' }' ,
1667
+ ' }' ,
1668
+ '' ,
1669
+ ' render() {' ,
1670
+ ' return (<div>{this.props.bar}</div>);' ,
1671
+ ' }' ,
1672
+ '}' ,
1673
+ 'Hello.propTypes = {' ,
1674
+ ' foo: PropTypes.string,' ,
1675
+ ' bar: PropTypes.string,' ,
1676
+ '};'
1677
+ ] . join ( '\n' )
1588
1678
} , {
1589
1679
code : [
1590
1680
'class Hello extends Component {' ,
@@ -1605,6 +1695,24 @@ ruleTester.run('no-unused-prop-types', rule, {
1605
1695
'}'
1606
1696
] . join ( '\n' ) ,
1607
1697
parser : 'babel-eslint'
1698
+ } , {
1699
+ code : [
1700
+ 'class Hello extends Component {' ,
1701
+ ' componentDidUpdate (prevProps) {' ,
1702
+ ' if (prevProps.foo) {' ,
1703
+ ' return true;' ,
1704
+ ' }' ,
1705
+ ' }' ,
1706
+ '' ,
1707
+ ' render() {' ,
1708
+ ' return (<div>{this.props.bar}</div>);' ,
1709
+ ' }' ,
1710
+ '}' ,
1711
+ 'Hello.propTypes = {' ,
1712
+ ' foo: PropTypes.string,' ,
1713
+ ' bar: PropTypes.string,' ,
1714
+ '};'
1715
+ ] . join ( '\n' )
1608
1716
}
1609
1717
] ,
1610
1718
@@ -2572,6 +2680,25 @@ ruleTester.run('no-unused-prop-types', rule, {
2572
2680
line : 4 ,
2573
2681
column : 10
2574
2682
} ]
2683
+ } , {
2684
+ code : [
2685
+ 'class Hello extends Component {' ,
2686
+ ' componentWillUpdate (nextProps) {' ,
2687
+ ' if (nextProps.foo) {' ,
2688
+ ' return true;' ,
2689
+ ' }' ,
2690
+ ' }' ,
2691
+ '}' ,
2692
+ 'Hello.propTypes = {' ,
2693
+ ' foo: PropTypes.string,' ,
2694
+ ' bar: PropTypes.string,' ,
2695
+ '};'
2696
+ ] . join ( '\n' ) ,
2697
+ errors : [ {
2698
+ message : '\'bar\' PropType is defined but prop is never used' ,
2699
+ line : 19 ,
2700
+ column : 10
2701
+ } ]
2575
2702
} , {
2576
2703
code : [
2577
2704
'class Hello extends Component {' ,
@@ -2593,6 +2720,25 @@ ruleTester.run('no-unused-prop-types', rule, {
2593
2720
line : 4 ,
2594
2721
column : 10
2595
2722
} ]
2723
+ } , {
2724
+ code : [
2725
+ 'class Hello extends Component {' ,
2726
+ ' shouldComponentUpdate (nextProps) {' ,
2727
+ ' if (nextProps.foo) {' ,
2728
+ ' return true;' ,
2729
+ ' }' ,
2730
+ ' }' ,
2731
+ '}' ,
2732
+ 'Hello.propTypes = {' ,
2733
+ ' foo: PropTypes.string,' ,
2734
+ ' bar: PropTypes.string,' ,
2735
+ '};'
2736
+ ] . join ( '\n' ) ,
2737
+ errors : [ {
2738
+ message : '\'bar\' PropType is defined but prop is never used' ,
2739
+ line : 19 ,
2740
+ column : 10
2741
+ } ]
2596
2742
} , {
2597
2743
code : [
2598
2744
'class Hello extends Component {' ,
@@ -2614,6 +2760,25 @@ ruleTester.run('no-unused-prop-types', rule, {
2614
2760
line : 4 ,
2615
2761
column : 10
2616
2762
} ]
2763
+ } , {
2764
+ code : [
2765
+ 'class Hello extends Component {' ,
2766
+ ' componentDidUpdate (nextProps) {' ,
2767
+ ' if (nextProps.foo) {' ,
2768
+ ' return true;' ,
2769
+ ' }' ,
2770
+ ' }' ,
2771
+ '}' ,
2772
+ 'Hello.propTypes = {' ,
2773
+ ' foo: PropTypes.string,' ,
2774
+ ' bar: PropTypes.string,' ,
2775
+ '};'
2776
+ ] . join ( '\n' ) ,
2777
+ errors : [ {
2778
+ message : '\'bar\' PropType is defined but prop is never used' ,
2779
+ line : 19 ,
2780
+ column : 10
2781
+ } ]
2617
2782
}
2618
2783
/* , {
2619
2784
// Enable this when the following issue is fixed
0 commit comments