package config import ( "fmt" "os" "testing" "github.com/stretchr/testify/assert" ) func TestLoadTomlMissing(t *testing.T) { _, e := LoadFromToml("not-a-real-filee") assert.Error(t, e) } type sqlSett struct { Path string Num int } func TestLoadTomlGood(t *testing.T) { tmp, _ := os.CreateTemp("", "*.toml") defer os.Remove(tmp.Name()) defer tmp.Close() fmt.Fprintln(tmp, `name = "Cool"`) fmt.Fprintln(tmp, `env = "prod"`) fmt.Fprintln(tmp, "[stores]") fmt.Fprintln(tmp, `store = "sqlite"`) fmt.Fprintln(tmp, "[stores.settings.sqlite]") fmt.Fprintln(tmp, `path = "tmp"`) fmt.Fprintln(tmp, `num = 42`) c, e := LoadFromToml(tmp.Name()) assert.NoError(t, e) assert.Equal(t, "Cool", c.Name()) assert.Equal(t, Prod, c.Env()) st, err := c.Store("") assert.NoError(t, err) assert.Equal(t, "sqlite", st.Name()) var sett sqlSett err = st.Decode(&sett) assert.NoError(t, err) assert.Equal(t, 42, sett.Num) assert.Equal(t, "tmp", sett.Path) }