@@ -741,3 +741,34 @@ func TestLoadWithFormat(t *testing.T) {
741
741
assert .NilError (t , err )
742
742
assert .DeepEqual (t , expectedValues , env )
743
743
}
744
+
745
+ func TestMultipleFiles (t * testing.T ) {
746
+ base := filepath .Join (t .TempDir (), "base.env" )
747
+ err := os .WriteFile (base , []byte (`
748
+ ENV_HOSTNAME=localhost
749
+ ENV_MY_URL="http://${ENV_HOSTNAME}"
750
+ ` ), 0o600 )
751
+ assert .NilError (t , err )
752
+
753
+ override := filepath .Join (t .TempDir (), "override.env" )
754
+ err = os .WriteFile (override , []byte (`
755
+ ENV_HOSTNAME=dev.my-company.com
756
+ ENV_MY_URL="http://${ENV_HOSTNAME}"
757
+ ` ), 0o600 )
758
+ assert .NilError (t , err )
759
+
760
+ env , err := GetEnvFromFile (nil , []string {base , override })
761
+ assert .NilError (t , err )
762
+ assert .DeepEqual (t , env , map [string ]string {
763
+ "ENV_HOSTNAME" : "dev.my-company.com" ,
764
+ "ENV_MY_URL" : "http://dev.my-company.com" ,
765
+ })
766
+
767
+ osEnv := map [string ]string {"ENV_HOSTNAME" : "host.local" }
768
+ env , err = GetEnvFromFile (osEnv , []string {base , override })
769
+ assert .NilError (t , err )
770
+ assert .DeepEqual (t , env , map [string ]string {
771
+ "ENV_HOSTNAME" : "dev.my-company.com" ,
772
+ "ENV_MY_URL" : "http://host.local" ,
773
+ })
774
+ }
0 commit comments