github.com/onflow/flow-go@v0.33.17/fvm/evm/handler/blockstore_test.go (about) 1 package handler_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/onflow/flow-go/fvm/evm/handler" 9 "github.com/onflow/flow-go/fvm/evm/testutils" 10 "github.com/onflow/flow-go/fvm/evm/types" 11 "github.com/onflow/flow-go/model/flow" 12 ) 13 14 func TestBlockStore(t *testing.T) { 15 16 testutils.RunWithTestBackend(t, func(backend *testutils.TestBackend) { 17 testutils.RunWithTestFlowEVMRootAddress(t, backend, func(root flow.Address) { 18 bs, err := handler.NewBlockStore(backend, root) 19 require.NoError(t, err) 20 21 // check gensis block 22 b, err := bs.LatestBlock() 23 require.NoError(t, err) 24 require.Equal(t, types.GenesisBlock, b) 25 26 // test block proposal from genesis 27 bp, err := bs.BlockProposal() 28 require.NoError(t, err) 29 require.Equal(t, uint64(1), bp.Height) 30 expectedParentHash, err := types.GenesisBlock.Hash() 31 require.NoError(t, err) 32 require.Equal(t, expectedParentHash, bp.ParentBlockHash) 33 34 // commit block proposal 35 supply := uint64(100) 36 bp.TotalSupply = supply 37 err = bs.CommitBlockProposal() 38 require.NoError(t, err) 39 b, err = bs.LatestBlock() 40 require.NoError(t, err) 41 require.Equal(t, supply, b.TotalSupply) 42 require.Equal(t, uint64(1), b.Height) 43 bp, err = bs.BlockProposal() 44 require.NoError(t, err) 45 require.Equal(t, uint64(2), bp.Height) 46 }) 47 48 }) 49 50 }