47 lines
970 B
Go
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)
|
|
}
|