// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 package framework import ( "context" "reflect" "testing" "github.com/hashicorp/vault/sdk/logical" ) func TestWAL(t *testing.T) { s := new(logical.InmemStorage) ctx := context.Background() // WAL should be empty to start keys, err := ListWAL(ctx, s) if err != nil { t.Fatalf("err: %s", err) } if len(keys) > 0 { t.Fatalf("bad: %#v", keys) } // Write an entry to the WAL id, err := PutWAL(ctx, s, "foo", "bar") if err != nil { t.Fatalf("err: %s", err) } // The key should be in the WAL keys, err = ListWAL(ctx, s) if err != nil { t.Fatalf("err: %s", err) } if !reflect.DeepEqual(keys, []string{id}) { t.Fatalf("bad: %#v", keys) } // Should be able to get the value entry, err := GetWAL(ctx, s, id) if err != nil { t.Fatalf("err: %s", err) } if entry.Kind != "foo" { t.Fatalf("bad: %#v", entry) } if entry.Data != "bar" { t.Fatalf("bad: %#v", entry) } // Should be able to delete the value if err := DeleteWAL(ctx, s, id); err != nil { t.Fatalf("err: %s", err) } entry, err = GetWAL(ctx, s, id) if err != nil { t.Fatalf("err: %s", err) } if entry != nil { t.Fatalf("bad: %#v", entry) } }