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 }