combluotion/config/config_test.go
2025-01-27 15:23:46 -06:00

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"])
}