package with_test import ( "context" "database/sql" "testing" "gitea.bel.blue/bel/with" ) func TestKV(t *testing.T) { ctx := context.Background() if err := with.Sqlite(ctx, ":memory:", func(db *sql.DB) error { return with.KV(ctx, db, func(kv with.SQLKV) error { if _, err := kv.Get(ctx, "k"); err == nil { t.Error("404 no err") } if err := kv.Set(ctx, "k", []byte("v")); err != nil { t.Error("err on insert", err) } if v, err := kv.Get(ctx, "k"); err != nil { t.Error("err on get", err) } else if string(v) != "v" { t.Errorf("expected 'v' but got %q", v) } if err := kv.Set(ctx, "k", []byte("v2")); err != nil { t.Error("err on update", err) } if v, err := kv.Get(ctx, "k"); err != nil { t.Error("err on get updated", err) } else if string(v) != "v2" { t.Errorf("expected 'v2' but got %q", v) } return nil }) }); err != nil { t.Fatal(err) } }