@@ -177,15 +177,19 @@ ruleTester.run('no-unused-prop-types', rule, {
177177 ] . join ( '\n' ) ,
178178 parserOptions : parserOptions
179179 } , {
180+ // Props validation is ignored when spread is used
180181 code : [
181182 'class Hello extends React.Component {' ,
182183 ' render() {' ,
183- ' var { firstname, ...other } = this.props;' ,
184+ ' var { firstname, ...props } = this.props;' ,
185+ ' var { category, icon } = props;' ,
184186 ' return <div>Hello {firstname}</div>;' ,
185187 ' }' ,
186188 '}' ,
187189 'Hello.propTypes = {' ,
188- ' firstname: React.PropTypes.string' ,
190+ ' firstname: React.PropTypes.string,' ,
191+ ' category: React.PropTypes.string,' ,
192+ ' icon: React.PropTypes.bool' ,
189193 '};'
190194 ] . join ( '\n' ) ,
191195 parser : 'babel-eslint' ,
@@ -1653,25 +1657,6 @@ ruleTester.run('no-unused-prop-types', rule, {
16531657 { message : '\'a.unused\' PropType is defined but prop is never used' } ,
16541658 { message : '\'a.anotherunused\' PropType is defined but prop is never used' }
16551659 ]
1656- } , {
1657- code : [
1658- 'class Hello extends React.Component {' ,
1659- ' render() {' ,
1660- ' var { ' ,
1661- ' "aria-controls": ariaControls, ' ,
1662- ' propX,' ,
1663- ' ...props } = this.props;' ,
1664- ' return <div>Hello</div>;' ,
1665- ' }' ,
1666- '}' ,
1667- 'Hello.propTypes = {' ,
1668- ' "aria-unused": React.PropTypes.string' ,
1669- '};'
1670- ] . join ( '\n' ) ,
1671- parser : 'babel-eslint' ,
1672- errors : [
1673- { message : '\'aria-unused\' PropType is defined but prop is never used' }
1674- ]
16751660 } , {
16761661 code : [
16771662 'class Hello extends React.Component {' ,
0 commit comments