github.com/rjgonzale/pop/v5@v5.1.3-dev/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  	r.NoError(LoadConfigFile())
    16  	if DialectSupported("sqlite3") {
    17  		r.Equal(5, len(Connections))
    18  	} else {
    19  		r.Equal(4, len(Connections))
    20  	}
    21  }
    22  
    23  func Test_AddLookupPaths(t *testing.T) {
    24  	r := require.New(t)
    25  	AddLookupPaths("./foo")
    26  	r.Contains(LookupPaths(), "./foo")
    27  }
    28  
    29  func Test_ParseConfig(t *testing.T) {
    30  	r := require.New(t)
    31  	config := strings.NewReader(`
    32  mysql:
    33    dialect: "mysql"
    34    database: "pop_test"
    35    host: "127.0.0.1"
    36    port: "3306"
    37    user: "root"
    38    password: "root"
    39    unsafe: true
    40    options:
    41      readTimeout: 5s`)
    42  	conns, err := ParseConfig(config)
    43  	r.NoError(err)
    44  	r.Equal(1, len(conns))
    45  	r.NotNil(conns["mysql"])
    46  	r.Equal("mysql", conns["mysql"].Dialect)
    47  	r.Equal("pop_test", conns["mysql"].Database)
    48  	r.Equal("127.0.0.1", conns["mysql"].Host)
    49  	r.Equal("3306", conns["mysql"].Port)
    50  	r.Equal(envy.Get("MYSQL_USER", "root"), conns["mysql"].User)
    51  	r.Equal(envy.Get("MYSQL_PASSWORD", "root"), conns["mysql"].Password)
    52  	r.True(conns["mysql"].Unsafe)
    53  	r.Equal("5s", conns["mysql"].Options["readTimeout"])
    54  }
    55  
    56  func Test_ParseConfigUnsafeDefault(t *testing.T) {
    57  	// Ensure that the default `unsafe` value is false.
    58  	r := require.New(t)
    59  	config := strings.NewReader(`
    60  mysql:
    61    dialect: "mysql"`)
    62  	conns, err := ParseConfig(config)
    63  	r.NoError(err)
    64  	r.False(conns["mysql"].Unsafe)
    65  }