github.com/duskeagle/pop@v4.10.1-0.20190417200916-92f2b794aab5+incompatible/config_test.go (about)

     1  package pop
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/gobuffalo/envy"
     8  
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func Test_LoadsConnectionsFromConfig(t *testing.T) {
    13  	r := require.New(t)
    14  
    15  	conns := Connections
    16  	r.Equal(6, len(conns))
    17  }
    18  
    19  func Test_AddLookupPaths(t *testing.T) {
    20  	r := require.New(t)
    21  	AddLookupPaths("./foo")
    22  	r.Contains(LookupPaths(), "./foo")
    23  }
    24  
    25  func Test_ParseConfig(t *testing.T) {
    26  	r := require.New(t)
    27  	config := strings.NewReader(`
    28  mysql:
    29    dialect: "mysql"
    30    database: "pop_test"
    31    host: {{ envOr "MYSQL_HOST" "127.0.0.1"  }}
    32    port: {{ envOr "MYSQL_PORT" "3306"  }}
    33    user: {{ envOr "MYSQL_USER"  "root"  }}
    34    password: {{ envOr "MYSQL_PASSWORD"  "root"  }}
    35    options:
    36      readTimeout: 5s`)
    37  	conns, err := ParseConfig(config)
    38  	r.NoError(err)
    39  	r.Equal(1, len(conns))
    40  	r.NotNil(conns["mysql"])
    41  	r.Equal("mysql", conns["mysql"].Dialect)
    42  	r.Equal("pop_test", conns["mysql"].Database)
    43  	r.Equal("127.0.0.1", conns["mysql"].Host)
    44  	r.Equal("3306", conns["mysql"].Port)
    45  	r.Equal(envy.Get("MYSQL_USER", "root"), conns["mysql"].User)
    46  	r.Equal(envy.Get("MYSQL_PASSWORD", "root"), conns["mysql"].Password)
    47  	r.Equal("5s", conns["mysql"].Options["readTimeout"])
    48  }