♻️ Refactor config
Make it easier to setup stores
This commit is contained in:
parent
ecae0d5f83
commit
6f06adc37d
12 changed files with 623 additions and 81 deletions
|
|
@ -13,18 +13,33 @@ func TestLoadTomlMissing(t *testing.T) {
|
|||
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, "[conn]")
|
||||
fmt.Fprintln(tmp, "[stores]")
|
||||
fmt.Fprintln(tmp, `store = "sqlite"`)
|
||||
fmt.Fprintln(tmp, "[conn.settings]")
|
||||
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, "sqlite", c.Conn.Store)
|
||||
assert.Equal(t, int64(42), c.Conn.Settings["num"])
|
||||
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)
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue