| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package store_test
- import (
- "testing"
- "time"
- "github.com/TecharoHQ/anubis/lib/store"
- "github.com/TecharoHQ/anubis/lib/store/memory"
- )
- func TestJSON(t *testing.T) {
- type data struct {
- ID string `json:"id"`
- }
- st := memory.New(t.Context())
- db := store.JSON[data]{
- Underlying: st,
- Prefix: "foo:",
- }
- if err := db.Set(t.Context(), "test", data{ID: t.Name()}, time.Minute); err != nil {
- t.Fatal(err)
- }
- got, err := db.Get(t.Context(), "test")
- if err != nil {
- t.Fatal(err)
- }
- if got.ID != t.Name() {
- t.Fatalf("got wrong data for key \"test\", wanted %q but got: %q", t.Name(), got.ID)
- }
- if err := db.Delete(t.Context(), "test"); err != nil {
- t.Fatal(err)
- }
- if _, err := db.Get(t.Context(), "test"); err == nil {
- t.Fatal("wanted invalid get to fail, it did not")
- }
- if err := st.Set(t.Context(), "foo:test", []byte("}"), time.Minute); err != nil {
- t.Fatal(err)
- }
- if _, err := db.Get(t.Context(), "test"); err == nil {
- t.Fatal("wanted invalid get to fail, it did not")
- }
- }
|