github.com/MetalBlockchain/metalgo@v1.11.9/snow/engine/common/tracker/peers_test.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package tracker 5 6 import ( 7 "context" 8 "testing" 9 10 "github.com/stretchr/testify/require" 11 12 "github.com/MetalBlockchain/metalgo/ids" 13 "github.com/MetalBlockchain/metalgo/version" 14 ) 15 16 func TestPeers(t *testing.T) { 17 require := require.New(t) 18 19 nodeID := ids.GenerateTestNodeID() 20 21 p := NewPeers() 22 23 require.Zero(p.ConnectedWeight()) 24 25 p.OnValidatorAdded(nodeID, nil, ids.Empty, 5) 26 require.Zero(p.ConnectedWeight()) 27 28 require.NoError(p.Connected(context.Background(), nodeID, version.CurrentApp)) 29 require.Equal(uint64(5), p.ConnectedWeight()) 30 31 p.OnValidatorWeightChanged(nodeID, 5, 10) 32 require.Equal(uint64(10), p.ConnectedWeight()) 33 34 p.OnValidatorRemoved(nodeID, 10) 35 require.Zero(p.ConnectedWeight()) 36 37 p.OnValidatorAdded(nodeID, nil, ids.Empty, 5) 38 require.Equal(uint64(5), p.ConnectedWeight()) 39 40 require.NoError(p.Disconnected(context.Background(), nodeID)) 41 require.Zero(p.ConnectedWeight()) 42 }