github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/sync/error_test.go (about)

     1  package sync
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	p2ptest "github.com/prysmaticlabs/prysm/beacon-chain/p2p/testing"
     8  	"github.com/prysmaticlabs/prysm/beacon-chain/p2p/types"
     9  	"github.com/prysmaticlabs/prysm/shared/testutil/assert"
    10  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    11  )
    12  
    13  func TestRegularSync_generateErrorResponse(t *testing.T) {
    14  	r := &Service{
    15  		cfg: &Config{P2P: p2ptest.NewTestP2P(t)},
    16  	}
    17  	data, err := r.generateErrorResponse(responseCodeServerError, "something bad happened")
    18  	require.NoError(t, err)
    19  
    20  	buf := bytes.NewBuffer(data)
    21  	b := make([]byte, 1)
    22  	_, err = buf.Read(b)
    23  	require.NoError(t, err)
    24  	assert.Equal(t, responseCodeServerError, b[0], "The first byte was not the status code")
    25  	msg := &types.ErrorMessage{}
    26  	require.NoError(t, r.cfg.P2P.Encoding().DecodeWithMaxLength(buf, msg))
    27  	assert.Equal(t, "something bad happened", string(*msg), "Received the wrong message")
    28  }