@@ -413,7 +413,7 @@ describe('$override directive', () => {
413
413
) ;
414
414
} ) ;
415
415
416
- it ( 'overrides env' , async ( ) => {
416
+ it ( 'extends env' , async ( ) => {
417
417
await withTempFiles (
418
418
{
419
419
'test-file.yml' : `
@@ -444,7 +444,7 @@ describe('$override directive', () => {
444
444
) ;
445
445
} ) ;
446
446
447
- it ( 'overrides env and $envVar' , async ( ) => {
447
+ it ( 'extends env and $envVar' , async ( ) => {
448
448
await withTempFiles (
449
449
{
450
450
'test-file.yml' : `
@@ -471,7 +471,7 @@ describe('$override directive', () => {
471
471
) ;
472
472
} ) ;
473
473
474
- it ( 'overrides env and $substitute' , async ( ) => {
474
+ it ( 'extends env and $substitute' , async ( ) => {
475
475
await withTempFiles (
476
476
{
477
477
'test-file.yml' : `
@@ -498,7 +498,7 @@ describe('$override directive', () => {
498
498
) ;
499
499
} ) ;
500
500
501
- it ( 'overrides env multiple files' , async ( ) => {
501
+ it ( 'extends env multiple files' , async ( ) => {
502
502
await withTempFiles (
503
503
{
504
504
'test-file.yml' : `
@@ -535,4 +535,73 @@ describe('$override directive', () => {
535
535
} ,
536
536
) ;
537
537
} ) ;
538
+
539
+ it ( 'override env' , async ( ) => {
540
+ await withTempFiles (
541
+ {
542
+ 'test-file.yml' : `
543
+ bar:
544
+ $env:
545
+ default: 44
546
+ dev: 88
547
+ ` ,
548
+ } ,
549
+ async ( inDir ) => {
550
+ const source = new LiteralSource ( {
551
+ foo : {
552
+ $env : {
553
+ default : 44 ,
554
+ dev : 88 ,
555
+ } ,
556
+ } ,
557
+ $override : {
558
+ path : inDir ( 'test-file.yml' ) ,
559
+ env : 'development' ,
560
+ } ,
561
+ } ) ;
562
+
563
+ const parsed = await source . read ( [ envDirective ( ) , overrideDirective ( ) ] ) ;
564
+
565
+ expect ( parsed . toJSON ( ) ) . toEqual ( { foo : 44 , bar : 88 } ) ;
566
+ } ,
567
+ ) ;
568
+ } ) ;
569
+
570
+ it ( 'override env multiple files' , async ( ) => {
571
+ await withTempFiles (
572
+ {
573
+ 'test-file.yml' : `
574
+ foo:
575
+ $env:
576
+ default: 44
577
+ dev: 88
578
+ ` ,
579
+ 'test-file-2.yml' : `
580
+ bar:
581
+ $env:
582
+ default: 44
583
+ dev: 88
584
+ prod: 142
585
+ ` ,
586
+ } ,
587
+ async ( inDir ) => {
588
+ const source = new LiteralSource ( {
589
+ $override : [
590
+ {
591
+ path : inDir ( 'test-file.yml' ) ,
592
+ env : 'development' ,
593
+ } ,
594
+ {
595
+ path : inDir ( 'test-file-2.yml' ) ,
596
+ env : 'production' ,
597
+ } ,
598
+ ] ,
599
+ } ) ;
600
+
601
+ const parsed = await source . read ( [ envDirective ( ) , overrideDirective ( ) ] ) ;
602
+
603
+ expect ( parsed . toJSON ( ) ) . toEqual ( { foo : 88 , bar : 142 } ) ;
604
+ } ,
605
+ ) ;
606
+ } ) ;
538
607
} ) ;
0 commit comments