github.com/MetalBlockchain/metalgo@v1.11.9/snow/engine/common/tracker/accepted_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 "testing" 8 9 "github.com/stretchr/testify/require" 10 11 "github.com/MetalBlockchain/metalgo/ids" 12 ) 13 14 func TestAccepted(t *testing.T) { 15 require := require.New(t) 16 17 nodeID := ids.GenerateTestNodeID() 18 blkID0 := ids.GenerateTestID() 19 blkID1 := ids.GenerateTestID() 20 21 a := NewAccepted() 22 23 _, ok := a.LastAccepted(nodeID) 24 require.False(ok) 25 26 a.SetLastAccepted(nodeID, blkID0) 27 _, ok = a.LastAccepted(nodeID) 28 require.False(ok) 29 30 a.OnValidatorAdded(nodeID, nil, ids.GenerateTestID(), 1) 31 32 _, ok = a.LastAccepted(nodeID) 33 require.False(ok) 34 35 a.SetLastAccepted(nodeID, blkID0) 36 blkID, ok := a.LastAccepted(nodeID) 37 require.True(ok) 38 require.Equal(blkID0, blkID) 39 40 a.SetLastAccepted(nodeID, blkID1) 41 blkID, ok = a.LastAccepted(nodeID) 42 require.True(ok) 43 require.Equal(blkID1, blkID) 44 45 a.OnValidatorRemoved(nodeID, 1) 46 47 _, ok = a.LastAccepted(nodeID) 48 require.False(ok) 49 }