64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
package config
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/BurntSushi/toml"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestEnvDefaultsToDev(t *testing.T) {
|
|
c := config{}
|
|
assert.Equal(t, Dev, c.Env())
|
|
}
|
|
|
|
func TestInvalidEnvReturnsDev(t *testing.T) {
|
|
c := config{env: Env(255)}
|
|
assert.Equal(t, Dev, c.Env())
|
|
}
|
|
|
|
func TestValidEnvReturnsCorrect(t *testing.T) {
|
|
for _, e := range Envs {
|
|
t.Run(string(e), func(t *testing.T) {
|
|
c := config{env: e}
|
|
assert.Equal(t, e, c.Env())
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestConfigBaseURL(t *testing.T) {
|
|
c := config{baseURL: "https://me.goodevilgenius.org"}
|
|
assert.Equal(t, c.baseURL, c.BaseURL())
|
|
}
|
|
|
|
func TestConfigStoreName(t *testing.T) {
|
|
c := config{stores: stores{store: "cockroachdb"}}
|
|
assert.Equal(t, c.stores.store, c.StoreName())
|
|
}
|
|
|
|
func TestStoresMissingStore(t *testing.T) {
|
|
ss := stores{}
|
|
st, er := ss.GetStore("cockroachdb")
|
|
assert.Nil(t, st)
|
|
assert.ErrorIs(t, er, ErrMissingStore)
|
|
}
|
|
|
|
var mockToml = `
|
|
[cockroachdb]
|
|
|
|
dsn = "cockroachdb://user:pass@127.0.0.1:26257/combluotion"
|
|
`
|
|
|
|
type mockConn struct {
|
|
CockroachDB toml.Primitive
|
|
}
|
|
|
|
func TestStoreMap(t *testing.T) {
|
|
var conn mockConn
|
|
md, _ := toml.Decode(mockToml, &conn)
|
|
st := store{"cockroachdb", conn.CockroachDB, md}
|
|
|
|
m, er := st.Map()
|
|
assert.NoError(t, er)
|
|
assert.Equal(t, "cockroachdb://user:pass@127.0.0.1:26257/combluotion", m["dsn"])
|
|
}
|