File tree 2 files changed +38
-2
lines changed
@commitlint/resolve-extends/src
2 files changed +38
-2
lines changed Original file line number Diff line number Diff line change @@ -493,3 +493,39 @@ test('parserPreset should be merged correctly', () => {
493
493
494
494
expect ( actual ) . toEqual ( expected ) ;
495
495
} ) ;
496
+
497
+ test ( 'should correctly merge nested configs' , ( ) => {
498
+ const input = { extends : [ 'extender-1' ] } ;
499
+
500
+ const require = ( id : string ) => {
501
+ switch ( id ) {
502
+ case 'extender-1' :
503
+ return { extends : [ 'extender-3' , 'extender-2' ] } ;
504
+ case 'extender-2' :
505
+ return { extends : [ 'extender-4' ] } ;
506
+ case 'extender-3' :
507
+ return { rules : { test : 3 } } ;
508
+ case 'extender-4' :
509
+ return { extends : [ 'extender-5' , 'extender-6' ] , rules : { test : 4 } } ;
510
+ case 'extender-5' :
511
+ return { rules : { test : 5 } } ;
512
+ case 'extender-6' :
513
+ return { rules : { test : 6 } } ;
514
+ default :
515
+ return { } ;
516
+ }
517
+ } ;
518
+
519
+ const ctx = { resolve : id , require : jest . fn ( require ) } as ResolveExtendsContext ;
520
+
521
+ const actual = resolveExtends ( input , ctx ) ;
522
+
523
+ const expected = {
524
+ extends : [ 'extender-1' ] ,
525
+ rules : {
526
+ test : 4 ,
527
+ } ,
528
+ } ;
529
+
530
+ expect ( actual ) . toEqual ( expected ) ;
531
+ } ) ;
Original file line number Diff line number Diff line change @@ -55,7 +55,7 @@ function loadExtends(
55
55
const { extends : e } = config ;
56
56
const ext = e ? ( Array . isArray ( e ) ? e : [ e ] ) : [ ] ;
57
57
58
- return ext . reduceRight < ResolvedConfig [ ] > ( ( configs , raw ) => {
58
+ return ext . reduce < ResolvedConfig [ ] > ( ( configs , raw ) => {
59
59
const load = context . require || require ;
60
60
const resolved = resolveConfig ( raw , context ) ;
61
61
const c = load ( resolved ) ;
@@ -81,7 +81,7 @@ function loadExtends(
81
81
config . parserPreset = parserPreset ;
82
82
}
83
83
84
- return [ ...loadExtends ( c , ctx ) , c , ... configs ] ;
84
+ return [ ...configs , ... loadExtends ( c , ctx ) , c ] ;
85
85
} , [ ] ) ;
86
86
}
87
87
You can’t perform that action at this time.
0 commit comments