github.com/unionj-cloud/go-doudou@v1.3.8-0.20221011095552-0088008e5b31/toolkit/dotenv/dotenv_test.go (about)

     1  package dotenv_test
     2  
     3  import (
     4  	"github.com/pkg/errors"
     5  	"github.com/stretchr/testify/require"
     6  	"github.com/unionj-cloud/go-doudou/toolkit/dotenv"
     7  	"io"
     8  	"os"
     9  	"testing"
    10  )
    11  
    12  func TestLoadAsMap(t *testing.T) {
    13  	_ = os.Chdir("testdata")
    14  	f, _ := os.Open(".env")
    15  	result, err := dotenv.LoadAsMap(f)
    16  	require.NoError(t, err)
    17  	require.Equal(t, "6060", result["gdd.port"])
    18  	require.Equal(t, "/api", result["gdd.route.root.path"])
    19  }
    20  
    21  func ErrReader(err error) io.Reader {
    22  	return &errReader{err: err}
    23  }
    24  
    25  type errReader struct {
    26  	err error
    27  }
    28  
    29  func (r *errReader) Read(p []byte) (int, error) {
    30  	return 0, r.err
    31  }
    32  
    33  func TestLoadAsMapError(t *testing.T) {
    34  	_, err := dotenv.LoadAsMap(ErrReader(errors.New("test error")))
    35  	require.Error(t, err)
    36  }
    37  
    38  func TestLoad(t *testing.T) {
    39  	_ = os.Chdir("testdata")
    40  	dotenv.Load("")
    41  	require.Equal(t, "6060", os.Getenv("GDD_PORT"))
    42  	require.Equal(t, "/api", os.Getenv("GDD_ROUTE_ROOT_PATH"))
    43  }