combluotion/config/load_test.go

46 lines
903 B
Go
Raw Normal View History

2024-09-14 23:07:28 -05:00
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
}
2024-09-14 23:07:28 -05:00
func TestLoadTomlGood(t *testing.T) {
tmp, _ := os.CreateTemp("", "*.toml")
2024-09-15 12:02:22 -05:00
defer os.Remove(tmp.Name())
2024-09-14 23:07:28 -05:00
defer tmp.Close()
fmt.Fprintln(tmp, `name = "Cool"`)
fmt.Fprintln(tmp, "[stores]")
2024-09-14 23:07:28 -05:00
fmt.Fprintln(tmp, `store = "sqlite"`)
fmt.Fprintln(tmp, "[stores.settings.sqlite]")
fmt.Fprintln(tmp, `path = "tmp"`)
2024-09-14 23:07:28 -05:00
fmt.Fprintln(tmp, `num = 42`)
c, e := LoadFromToml(tmp.Name())
assert.NoError(t, e)
assert.Equal(t, "Cool", c.Name())
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)
2024-09-14 23:07:28 -05:00
}