@@ -295,6 +295,18 @@ ruleTester.run('boolean-prop-naming', rule, {
295295 rule : '^is[A-Z]([A-Za-z0-9]?)+'
296296 } ] ,
297297 parser : 'babel-eslint'
298+ } , {
299+ // No propWrapperFunctions setting
300+ code : `
301+ function Card(props) {
302+ return <div>{props.showScore ? 'yeh' : 'no'}</div>;
303+ }
304+ Card.propTypes = merge({}, Card.propTypes, {
305+ showScore: PropTypes.bool
306+ });` ,
307+ options : [ {
308+ rule : '^(is|has)[A-Z]([A-Za-z0-9]?)+'
309+ } ]
298310 } ] ,
299311
300312 invalid : [ {
@@ -515,5 +527,112 @@ ruleTester.run('boolean-prop-naming', rule, {
515527 } , {
516528 message : 'Prop name (somethingElse) doesn\'t match rule (^is[A-Z]([A-Za-z0-9]?)+)'
517529 } ]
530+ } , {
531+ code : `
532+ function Card(props) {
533+ return <div>{props.showScore ? 'yeh' : 'no'}</div>;
534+ }
535+ Card.propTypes = merge({}, Card.propTypes, {
536+ showScore: PropTypes.bool
537+ });` ,
538+ settings : {
539+ propWrapperFunctions : [ 'merge' ]
540+ } ,
541+ options : [ {
542+ rule : '^(is|has)[A-Z]([A-Za-z0-9]?)+'
543+ } ] ,
544+ errors : [ {
545+ message : 'Prop name (showScore) doesn\'t match rule (^(is|has)[A-Z]([A-Za-z0-9]?)+)'
546+ } ]
547+ } , {
548+ code : `
549+ function Card(props) {
550+ return <div>{props.showScore ? 'yeh' : 'no'}</div>;
551+ }
552+ Card.propTypes = Object.assign({}, Card.propTypes, {
553+ showScore: PropTypes.bool
554+ });` ,
555+ settings : {
556+ propWrapperFunctions : [ 'Object.assign' ]
557+ } ,
558+ options : [ {
559+ rule : '^(is|has)[A-Z]([A-Za-z0-9]?)+'
560+ } ] ,
561+ errors : [ {
562+ message : 'Prop name (showScore) doesn\'t match rule (^(is|has)[A-Z]([A-Za-z0-9]?)+)'
563+ } ]
564+ } , {
565+ code : `
566+ function Card(props) {
567+ return <div>{props.showScore ? 'yeh' : 'no'}</div>;
568+ }
569+ Card.propTypes = _.assign({}, Card.propTypes, {
570+ showScore: PropTypes.bool
571+ });` ,
572+ settings : {
573+ propWrapperFunctions : [ '_.assign' ]
574+ } ,
575+ options : [ {
576+ rule : '^(is|has)[A-Z]([A-Za-z0-9]?)+'
577+ } ] ,
578+ errors : [ {
579+ message : 'Prop name (showScore) doesn\'t match rule (^(is|has)[A-Z]([A-Za-z0-9]?)+)'
580+ } ]
581+ } , {
582+ code : `
583+ function Card(props) {
584+ return <div>{props.showScore ? 'yeh' : 'no'}</div>;
585+ }
586+ Card.propTypes = forbidExtraProps({
587+ showScore: PropTypes.bool
588+ });` ,
589+ settings : {
590+ propWrapperFunctions : [ 'forbidExtraProps' ]
591+ } ,
592+ options : [ {
593+ rule : '^(is|has)[A-Z]([A-Za-z0-9]?)+'
594+ } ] ,
595+ errors : [ {
596+ message : 'Prop name (showScore) doesn\'t match rule (^(is|has)[A-Z]([A-Za-z0-9]?)+)'
597+ } ]
598+ } , {
599+ code : `
600+ class Card extends React.Component {
601+ render() {
602+ return <div>{props.showScore ? 'yeh' : 'no'}</div>;
603+ }
604+ }
605+ Card.propTypes = forbidExtraProps({
606+ showScore: PropTypes.bool
607+ });` ,
608+ settings : {
609+ propWrapperFunctions : [ 'forbidExtraProps' ]
610+ } ,
611+ options : [ {
612+ rule : '^(is|has)[A-Z]([A-Za-z0-9]?)+'
613+ } ] ,
614+ errors : [ {
615+ message : 'Prop name (showScore) doesn\'t match rule (^(is|has)[A-Z]([A-Za-z0-9]?)+)'
616+ } ]
617+ } , {
618+ code : `
619+ class Card extends React.Component {
620+ static propTypes = forbidExtraProps({
621+ showScore: PropTypes.bool
622+ });
623+ render() {
624+ return <div>{props.showScore ? 'yeh' : 'no'}</div>;
625+ }
626+ }` ,
627+ parser : 'babel-eslint' ,
628+ settings : {
629+ propWrapperFunctions : [ 'forbidExtraProps' ]
630+ } ,
631+ options : [ {
632+ rule : '^(is|has)[A-Z]([A-Za-z0-9]?)+'
633+ } ] ,
634+ errors : [ {
635+ message : 'Prop name (showScore) doesn\'t match rule (^(is|has)[A-Z]([A-Za-z0-9]?)+)'
636+ } ]
518637 } ]
519638} ) ;
0 commit comments