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

47 lines
970 B
Go

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