@@ -295,6 +295,18 @@ ruleTester.run('boolean-prop-naming', rule, {
295
295
rule : '^is[A-Z]([A-Za-z0-9]?)+'
296
296
} ] ,
297
297
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
+ } ]
298
310
} ] ,
299
311
300
312
invalid : [ {
@@ -515,5 +527,112 @@ ruleTester.run('boolean-prop-naming', rule, {
515
527
} , {
516
528
message : 'Prop name (somethingElse) doesn\'t match rule (^is[A-Z]([A-Za-z0-9]?)+)'
517
529
} ]
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
+ } ]
518
637
} ]
519
638
} ) ;
0 commit comments