github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/db/kv/operations_test.go (about)

     1  package kv
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	ethpb "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1"
     8  	"github.com/prysmaticlabs/prysm/shared/testutil/assert"
     9  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    10  	"google.golang.org/protobuf/proto"
    11  )
    12  
    13  func TestStore_VoluntaryExits_CRUD(t *testing.T) {
    14  	db := setupDB(t)
    15  	ctx := context.Background()
    16  	exit := &ethpb.VoluntaryExit{
    17  		Epoch: 5,
    18  	}
    19  	exitRoot, err := exit.HashTreeRoot()
    20  	require.NoError(t, err)
    21  	retrieved, err := db.VoluntaryExit(ctx, exitRoot)
    22  	require.NoError(t, err)
    23  	assert.Equal(t, (*ethpb.VoluntaryExit)(nil), retrieved, "Expected nil voluntary exit")
    24  	require.NoError(t, db.SaveVoluntaryExit(ctx, exit))
    25  	assert.Equal(t, true, db.HasVoluntaryExit(ctx, exitRoot), "Expected voluntary exit to exist in the db")
    26  	retrieved, err = db.VoluntaryExit(ctx, exitRoot)
    27  	require.NoError(t, err)
    28  	assert.Equal(t, true, proto.Equal(exit, retrieved), "Wanted %v, received %v", exit, retrieved)
    29  	require.NoError(t, db.deleteVoluntaryExit(ctx, exitRoot))
    30  	assert.Equal(t, false, db.HasVoluntaryExit(ctx, exitRoot), "Expected voluntary exit to have been deleted from the db")
    31  }