Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dimartiro committed Sep 18, 2024
1 parent fef07c5 commit 6cd9a60
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 0 deletions.
55 changes: 55 additions & 0 deletions dot/network/mock_warp_sync_provider_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions dot/network/mocks_generate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ package network
//go:generate mockgen -destination=mock_telemetry_test.go -package $GOPACKAGE . Telemetry
//go:generate mockgen -destination=mock_syncer_test.go -package $GOPACKAGE . Syncer
//go:generate mockgen -destination=mock_block_state_test.go -package $GOPACKAGE . BlockState
//go:generate mockgen -destination=mock_warp_sync_provider_test.go -package $GOPACKAGE . WarpSyncProvider
//go:generate mockgen -destination=mock_transaction_handler_test.go -package $GOPACKAGE . TransactionHandler
//go:generate mockgen -destination=mock_stream_test.go -package $GOPACKAGE github.com/libp2p/go-libp2p/core/network Stream
63 changes: 63 additions & 0 deletions dot/network/warp_sync_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,19 @@
package network

import (
"fmt"
"testing"

"github.com/ChainSafe/gossamer/dot/network/messages"
"github.com/ChainSafe/gossamer/lib/common"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/stretchr/testify/require"
gomock "go.uber.org/mock/gomock"
)

func TestDecodeWarpSyncMessage(t *testing.T) {
t.Parallel()

testWarpReqMessage := &messages.WarpProofRequest{
Begin: common.EmptyHash,
}
Expand All @@ -29,3 +32,63 @@ func TestDecodeWarpSyncMessage(t *testing.T) {
require.True(t, ok)
require.Equal(t, testWarpReqMessage, req)
}

func createServiceWithWarpSyncHelper(t *testing.T, warpSyncProvider WarpSyncProvider) *Service {
t.Helper()

config := &Config{
BasePath: t.TempDir(),
Port: availablePort(t),
NoBootstrap: true,
NoMDNS: true,
warpSyncProvider: warpSyncProvider,
}

srvc := createTestService(t, config)
srvc.noGossip = true
handler := newTestStreamHandler(decodeSyncMessage)
srvc.host.registerStreamHandler(srvc.host.protocolID, handler.handleStream)

return srvc
}

func TestHandleWarpSyncRequestOk(t *testing.T) {
t.Parallel()

expectedProof := []byte{0x01}

ctrl := gomock.NewController(t)

warpSyncProvider := NewMockWarpSyncProvider(ctrl)
warpSyncProvider.EXPECT().generate(common.EmptyHash).Return(expectedProof, nil).Times(1)

srvc := createServiceWithWarpSyncHelper(t, warpSyncProvider)

req := messages.WarpProofRequest{
Begin: common.EmptyHash,
}

resp, err := srvc.handleWarpSyncRequest(req)
require.NoError(t, err)
require.Equal(t, expectedProof, resp)
}

func TestHandleWarpSyncRequestError(t *testing.T) {
t.Parallel()

expectedError := fmt.Errorf("error generating proof")
ctrl := gomock.NewController(t)

warpSyncProvider := NewMockWarpSyncProvider(ctrl)
warpSyncProvider.EXPECT().generate(common.EmptyHash).Return(nil, expectedError).Times(1)

srvc := createServiceWithWarpSyncHelper(t, warpSyncProvider)

req := messages.WarpProofRequest{
Begin: common.EmptyHash,
}

resp, err := srvc.handleWarpSyncRequest(req)
require.Nil(t, resp)
require.ErrorIs(t, err, expectedError)
}

0 comments on commit 6cd9a60

Please sign in to comment.