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