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, ðpb.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 }