@@ -741,3 +741,34 @@ func TestLoadWithFormat(t *testing.T) {
741741 assert .NilError (t , err )
742742 assert .DeepEqual (t , expectedValues , env )
743743}
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