@@ -11,11 +11,14 @@ const ruleTester = avaRuleTester(test, {
1111 }
1212} ) ;
1313
14- const instead = ( composition , fn ) => ( composition === 'compose' ? `compose(not, ${ fn } )` : `pipe(${ fn } , not)` ) ;
14+ const instead = {
15+ compose : 'compose(not, ...)' ,
16+ pipe : 'pipe(..., not)'
17+ } ;
1518
16- const error = ( composition , fn ) => ( {
17- ruleId : 'prefer-complement' ,
18- message : `Instead of \`${ instead ( composition , fn ) } \`, prefer \`complement(${ fn } )\``
19+ const error = composition => ( {
20+ ruleId : 'prefer-complement' ,
21+ message : `Instead of \`${ instead [ composition ] } \`, prefer \`complement(... )\``
1922} ) ;
2023
2124ruleTester . run ( 'prefer-complement' , rule , {
@@ -33,35 +36,59 @@ ruleTester.run('prefer-complement', rule, {
3336 invalid : [
3437 {
3538 code : 'compose(not, isEmpty)' ,
36- errors : [ error ( 'compose' , 'isEmpty' ) ]
39+ errors : [ error ( 'compose' ) ]
40+ } ,
41+ {
42+ code : 'compose(not, xs => xs.length)' ,
43+ errors : [ error ( 'compose' ) ]
3744 } ,
3845 {
3946 code : 'pipe(isEmpty, not)' ,
40- errors : [ error ( 'pipe' , 'isEmpty' ) ]
47+ errors : [ error ( 'pipe' ) ]
48+ } ,
49+ {
50+ code : 'pipe(function (xs) { return xs.length === 0; }, not)' ,
51+ errors : [ error ( 'pipe' ) ]
4152 } ,
4253 {
4354 code : 'compose(not, isNil)' ,
44- errors : [ error ( 'compose' , 'isNil' ) ]
55+ errors : [ error ( 'compose' ) ]
56+ } ,
57+ {
58+ code : 'compose(not, R.isNil)' ,
59+ errors : [ error ( 'compose' ) ]
4560 } ,
4661 {
4762 code : 'pipe(isNil, not)' ,
48- errors : [ error ( 'pipe' , 'isNil' ) ]
63+ errors : [ error ( 'pipe' ) ]
64+ } ,
65+ {
66+ code : 'pipe(R.isNil, not)' ,
67+ errors : [ error ( 'pipe' ) ]
4968 } ,
5069 {
5170 code : 'compose(not, foo)' ,
52- errors : [ error ( 'compose' , 'foo' ) ]
71+ errors : [ error ( 'compose' ) ]
72+ } ,
73+ {
74+ code : 'compose(not, foo(bar))' ,
75+ errors : [ error ( 'compose' ) ]
5376 } ,
5477 {
5578 code : 'pipe(foo, not)' ,
56- errors : [ error ( 'pipe' , 'foo' ) ]
79+ errors : [ error ( 'pipe' ) ]
80+ } ,
81+ {
82+ code : 'pipe(foo(bar), not)' ,
83+ errors : [ error ( 'pipe' ) ]
5784 } ,
5885 {
5986 code : 'propSatisfies(compose(not, isNil))' ,
60- errors : [ error ( 'compose' , 'isNil' ) ]
87+ errors : [ error ( 'compose' ) ]
6188 } ,
6289 {
6390 code : 'propSatisfies(pipe(isNil, not))' ,
64- errors : [ error ( 'pipe' , 'isNil' ) ]
91+ errors : [ error ( 'pipe' ) ]
6592 }
6693 ]
6794} ) ;
0 commit comments