github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/rpc/eth/v1/debug/debug_test.go (about) 1 package debug 2 3 import ( 4 "context" 5 "testing" 6 7 types "github.com/prysmaticlabs/eth2-types" 8 blockchainmock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" 9 "github.com/prysmaticlabs/prysm/beacon-chain/rpc/testutil" 10 ethpb "github.com/prysmaticlabs/prysm/proto/eth/v1" 11 "github.com/prysmaticlabs/prysm/shared/bytesutil" 12 sharedtestutil "github.com/prysmaticlabs/prysm/shared/testutil" 13 "github.com/prysmaticlabs/prysm/shared/testutil/assert" 14 "github.com/prysmaticlabs/prysm/shared/testutil/require" 15 "google.golang.org/protobuf/types/known/emptypb" 16 ) 17 18 func TestGetBeaconState(t *testing.T) { 19 fakeState, err := sharedtestutil.NewBeaconState() 20 require.NoError(t, err) 21 server := &Server{ 22 StateFetcher: &testutil.MockFetcher{ 23 BeaconState: fakeState, 24 }, 25 } 26 resp, err := server.GetBeaconState(context.Background(), ðpb.StateRequest{ 27 StateId: make([]byte, 0), 28 }) 29 require.NoError(t, err) 30 assert.NotNil(t, resp) 31 } 32 33 func TestGetBeaconStateSSZ(t *testing.T) { 34 fakeState, err := sharedtestutil.NewBeaconState() 35 require.NoError(t, err) 36 sszState, err := fakeState.MarshalSSZ() 37 require.NoError(t, err) 38 39 server := &Server{ 40 StateFetcher: &testutil.MockFetcher{ 41 BeaconState: fakeState, 42 }, 43 } 44 resp, err := server.GetBeaconStateSSZ(context.Background(), ðpb.StateRequest{ 45 StateId: make([]byte, 0), 46 }) 47 require.NoError(t, err) 48 assert.NotNil(t, resp) 49 50 assert.DeepEqual(t, sszState, resp.Data) 51 } 52 53 func TestListForkChoiceHeads(t *testing.T) { 54 ctx := context.Background() 55 56 expectedSlotsAndRoots := []struct { 57 Slot types.Slot 58 Root [32]byte 59 }{{ 60 Slot: 0, 61 Root: bytesutil.ToBytes32(bytesutil.PadTo([]byte("foo"), 32)), 62 }, { 63 Slot: 1, 64 Root: bytesutil.ToBytes32(bytesutil.PadTo([]byte("bar"), 32)), 65 }} 66 67 server := &Server{ 68 HeadFetcher: &blockchainmock.ChainService{}, 69 } 70 resp, err := server.ListForkChoiceHeads(ctx, &emptypb.Empty{}) 71 require.NoError(t, err) 72 assert.Equal(t, 2, len(resp.Data)) 73 for _, sr := range expectedSlotsAndRoots { 74 found := false 75 for _, h := range resp.Data { 76 if h.Slot == sr.Slot { 77 found = true 78 assert.DeepEqual(t, sr.Root[:], h.Root) 79 } 80 } 81 assert.Equal(t, true, found, "Expected head not found") 82 } 83 }