github.com/prysmaticlabs/prysm@v1.4.4/validator/db/kv/genesis_test.go (about)

     1  package kv
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/prysmaticlabs/prysm/shared/params"
     8  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
     9  )
    10  
    11  func TestStore_GenesisValidatorsRoot_ReadAndWrite(t *testing.T) {
    12  	ctx := context.Background()
    13  	db := setupDB(t, [][48]byte{})
    14  	tests := []struct {
    15  		name    string
    16  		want    []byte
    17  		write   []byte
    18  		wantErr bool
    19  	}{
    20  		{
    21  			name:  "empty then write",
    22  			want:  nil,
    23  			write: params.BeaconConfig().ZeroHash[:],
    24  		},
    25  		{
    26  			name:    "zero then overwrite rejected",
    27  			want:    params.BeaconConfig().ZeroHash[:],
    28  			write:   []byte{5},
    29  			wantErr: true,
    30  		},
    31  	}
    32  	for _, tt := range tests {
    33  		t.Run(tt.name, func(t *testing.T) {
    34  			got, err := db.GenesisValidatorsRoot(ctx)
    35  			require.NoError(t, err)
    36  			require.DeepEqual(t, tt.want, got)
    37  			err = db.SaveGenesisValidatorsRoot(ctx, tt.write)
    38  			if (err != nil) != tt.wantErr {
    39  				t.Errorf("GenesisValidatorRoot() error = %v, wantErr %v", err, tt.wantErr)
    40  			}
    41  		})
    42  	}
    43  }