cosmos-sdk/x/ibc/02-client/handler_test.go

48 lines
1.3 KiB
Go

package client_test
import (
client "github.com/cosmos/cosmos-sdk/x/ibc/02-client"
"github.com/cosmos/cosmos-sdk/x/ibc/02-client/exported"
localhosttypes "github.com/cosmos/cosmos-sdk/x/ibc/09-localhost/types"
)
func (suite *ClientTestSuite) TestHandleCreateClientLocalHost() {
cases := []struct {
name string
clientID string
msg exported.MsgCreateClient
expPass bool
}{
{
"tendermint client",
"gaiamainnet",
suite.chainA.ConstructMsgCreateClient(suite.chainB, "gaiamainnet"),
true,
},
{
"client already exists",
exported.ClientTypeLocalHost,
&localhosttypes.MsgCreateClient{suite.chainA.SenderAccount.GetAddress()},
false,
},
}
for _, tc := range cases {
_, err := client.HandleMsgCreateClient(
suite.chainA.GetContext(),
suite.chainA.App.IBCKeeper.ClientKeeper,
tc.msg,
)
if tc.expPass {
suite.Require().NoError(err, "expected test case %s to pass, got error %v", tc.name, err)
clientState, ok := suite.chainA.App.IBCKeeper.ClientKeeper.GetClientState(suite.chainA.GetContext(), tc.clientID)
suite.Require().True(ok, "could not retrieve clientState")
suite.Require().NotNil(clientState, "clientstate is nil")
} else {
suite.Require().Error(err, "invalid test case %s passed", tc.name)
}
}
}