github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/state/stategen/service_test.go (about)

     1  package stategen
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	testDB "github.com/prysmaticlabs/prysm/beacon-chain/db/testing"
     8  	ethpb "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1"
     9  	"github.com/prysmaticlabs/prysm/proto/eth/v1alpha1/wrapper"
    10  	"github.com/prysmaticlabs/prysm/shared/params"
    11  	"github.com/prysmaticlabs/prysm/shared/testutil"
    12  	"github.com/prysmaticlabs/prysm/shared/testutil/assert"
    13  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    14  )
    15  
    16  func TestResume(t *testing.T) {
    17  	ctx := context.Background()
    18  	beaconDB := testDB.SetupDB(t)
    19  
    20  	service := New(beaconDB)
    21  	b := testutil.NewBeaconBlock()
    22  	require.NoError(t, service.beaconDB.SaveBlock(ctx, wrapper.WrappedPhase0SignedBeaconBlock(b)))
    23  	root, err := b.Block.HashTreeRoot()
    24  	require.NoError(t, err)
    25  	beaconState, _ := testutil.DeterministicGenesisState(t, 32)
    26  	require.NoError(t, beaconState.SetSlot(params.BeaconConfig().SlotsPerEpoch))
    27  	require.NoError(t, service.beaconDB.SaveState(ctx, beaconState, root))
    28  	require.NoError(t, service.beaconDB.SaveGenesisBlockRoot(ctx, root))
    29  	require.NoError(t, service.beaconDB.SaveFinalizedCheckpoint(ctx, &ethpb.Checkpoint{Root: root[:]}))
    30  
    31  	resumeState, err := service.Resume(ctx)
    32  	require.NoError(t, err)
    33  	require.DeepSSZEqual(t, beaconState.InnerStateUnsafe(), resumeState.InnerStateUnsafe())
    34  	assert.Equal(t, params.BeaconConfig().SlotsPerEpoch, service.finalizedInfo.slot, "Did not get watned slot")
    35  	assert.Equal(t, service.finalizedInfo.root, root, "Did not get wanted root")
    36  	assert.NotNil(t, service.finalizedState(), "Wanted a non nil finalized state")
    37  }