package kv import ( "context" "testing" "github.com/gogo/protobuf/proto" ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1" "github.com/prysmaticlabs/go-ssz" ) func TestStore_VoluntaryExits_CRUD(t *testing.T) { db := setupDB(t) ctx := context.Background() exit := ðpb.VoluntaryExit{ Epoch: 5, } exitRoot, err := ssz.HashTreeRoot(exit) if err != nil { t.Fatal(err) } retrieved, err := db.VoluntaryExit(ctx, exitRoot) if err != nil { t.Fatal(err) } if retrieved != nil { t.Errorf("Expected nil voluntary exit, received %v", retrieved) } if err := db.SaveVoluntaryExit(ctx, exit); err != nil { t.Fatal(err) } if !db.HasVoluntaryExit(ctx, exitRoot) { t.Error("Expected voluntary exit to exist in the db") } retrieved, err = db.VoluntaryExit(ctx, exitRoot) if err != nil { t.Fatal(err) } if !proto.Equal(exit, retrieved) { t.Errorf("Wanted %v, received %v", exit, retrieved) } if err := db.DeleteVoluntaryExit(ctx, exitRoot); err != nil { t.Fatal(err) } if db.HasVoluntaryExit(ctx, exitRoot) { t.Error("Expected voluntary exit to have been deleted from the db") } }