github.com/friesencr/pop/v6@v6.1.6/config_test.go (about)

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