github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/core/02-client/abci_test.go (about)

     1  package client_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	client "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/02-client"
     7  	types2 "github.com/fibonacci-chain/fbc/libs/tendermint/types"
     8  
     9  	"github.com/stretchr/testify/suite"
    10  	// abci "github.com/tendermint/tendermint/abci/types"
    11  	// tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
    12  
    13  	"github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/02-client/types"
    14  	"github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/exported"
    15  	localhosttypes "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/light-clients/09-localhost/types"
    16  	ibctesting "github.com/fibonacci-chain/fbc/libs/ibc-go/testing"
    17  )
    18  
    19  type ClientTestSuite struct {
    20  	suite.Suite
    21  
    22  	coordinator *ibctesting.Coordinator
    23  
    24  	chainA ibctesting.TestChainI
    25  	chainB ibctesting.TestChainI
    26  }
    27  
    28  func (suite *ClientTestSuite) SetupTest() {
    29  	types2.UnittestOnlySetMilestoneVenus1Height(-1)
    30  	suite.coordinator = ibctesting.NewCoordinator(suite.T(), 2)
    31  
    32  	suite.chainA = suite.coordinator.GetChain(ibctesting.GetChainID(0))
    33  	suite.chainB = suite.coordinator.GetChain(ibctesting.GetChainID(1))
    34  
    35  	// set localhost client
    36  	tmpCtx := suite.chainA.GetContext()
    37  	revision := types.ParseChainID(tmpCtx.ChainID())
    38  	localHostClient := localhosttypes.NewClientState(
    39  		tmpCtx.ChainID(), types.NewHeight(revision, uint64(tmpCtx.BlockHeight())),
    40  	)
    41  	suite.chainA.App().GetIBCKeeper().ClientKeeper.SetClientState(suite.chainA.GetContext(), exported.Localhost, localHostClient)
    42  }
    43  
    44  func TestClientTestSuite(t *testing.T) {
    45  	suite.Run(t, new(ClientTestSuite))
    46  }
    47  
    48  func (suite *ClientTestSuite) TestBeginBlocker() {
    49  	prevHeight := types.GetSelfHeight(suite.chainA.GetContext())
    50  
    51  	localHostClient := suite.chainA.GetClientState(exported.Localhost)
    52  	suite.Require().Equal(prevHeight, localHostClient.GetLatestHeight())
    53  
    54  	for i := 0; i < 10; i++ {
    55  		// increment height
    56  		suite.coordinator.CommitBlock(suite.chainA, suite.chainB)
    57  
    58  		suite.Require().NotPanics(func() {
    59  			client.BeginBlocker(suite.chainA.GetContext(), suite.chainA.App().GetIBCKeeper().ClientKeeper)
    60  		}, "BeginBlocker shouldn't panic")
    61  
    62  		localHostClient = suite.chainA.GetClientState(exported.Localhost)
    63  		suite.Require().Equal(prevHeight.Increment(), localHostClient.GetLatestHeight())
    64  		prevHeight = localHostClient.GetLatestHeight().(types.Height)
    65  	}
    66  }