82 lines
1.6 KiB
Go
82 lines
1.6 KiB
Go
|
|
package store
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/stretchr/testify/assert"
|
||
|
|
"github.com/stretchr/testify/require"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestSetGet_Good(t *testing.T) {
|
||
|
|
s, err := New(":memory:")
|
||
|
|
require.NoError(t, err)
|
||
|
|
defer s.Close()
|
||
|
|
|
||
|
|
err = s.Set("config", "theme", "dark")
|
||
|
|
require.NoError(t, err)
|
||
|
|
|
||
|
|
val, err := s.Get("config", "theme")
|
||
|
|
require.NoError(t, err)
|
||
|
|
assert.Equal(t, "dark", val)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestGet_Bad_NotFound(t *testing.T) {
|
||
|
|
s, _ := New(":memory:")
|
||
|
|
defer s.Close()
|
||
|
|
|
||
|
|
_, err := s.Get("config", "missing")
|
||
|
|
assert.Error(t, err)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestDelete_Good(t *testing.T) {
|
||
|
|
s, _ := New(":memory:")
|
||
|
|
defer s.Close()
|
||
|
|
|
||
|
|
_ = s.Set("config", "key", "val")
|
||
|
|
err := s.Delete("config", "key")
|
||
|
|
require.NoError(t, err)
|
||
|
|
|
||
|
|
_, err = s.Get("config", "key")
|
||
|
|
assert.Error(t, err)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestCount_Good(t *testing.T) {
|
||
|
|
s, _ := New(":memory:")
|
||
|
|
defer s.Close()
|
||
|
|
|
||
|
|
_ = s.Set("grp", "a", "1")
|
||
|
|
_ = s.Set("grp", "b", "2")
|
||
|
|
_ = s.Set("other", "c", "3")
|
||
|
|
|
||
|
|
n, err := s.Count("grp")
|
||
|
|
require.NoError(t, err)
|
||
|
|
assert.Equal(t, 2, n)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestDeleteGroup_Good(t *testing.T) {
|
||
|
|
s, _ := New(":memory:")
|
||
|
|
defer s.Close()
|
||
|
|
|
||
|
|
_ = s.Set("grp", "a", "1")
|
||
|
|
_ = s.Set("grp", "b", "2")
|
||
|
|
err := s.DeleteGroup("grp")
|
||
|
|
require.NoError(t, err)
|
||
|
|
|
||
|
|
n, _ := s.Count("grp")
|
||
|
|
assert.Equal(t, 0, n)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestRender_Good(t *testing.T) {
|
||
|
|
s, _ := New(":memory:")
|
||
|
|
defer s.Close()
|
||
|
|
|
||
|
|
_ = s.Set("user", "pool", "pool.lthn.io:3333")
|
||
|
|
_ = s.Set("user", "wallet", "iz...")
|
||
|
|
|
||
|
|
tmpl := `{"pool":"{{ .pool }}","wallet":"{{ .wallet }}"}`
|
||
|
|
out, err := s.Render(tmpl, "user")
|
||
|
|
require.NoError(t, err)
|
||
|
|
assert.Contains(t, out, "pool.lthn.io:3333")
|
||
|
|
assert.Contains(t, out, "iz...")
|
||
|
|
}
|