wormhole/wormchain/x/wormhole/client/cli/query_consensus_guardian_se...

85 lines
2.3 KiB
Go

package cli_test
import (
"fmt"
"testing"
clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli"
"github.com/stretchr/testify/require"
tmcli "github.com/tendermint/tendermint/libs/cli"
"google.golang.org/grpc/status"
"github.com/wormhole-foundation/wormchain/testutil/network"
"github.com/wormhole-foundation/wormchain/testutil/nullify"
"github.com/wormhole-foundation/wormchain/x/wormhole/client/cli"
"github.com/wormhole-foundation/wormchain/x/wormhole/types"
)
func networkWithConsensusGuardianSetIndexObjects(t *testing.T) (*network.Network, types.ConsensusGuardianSetIndex) {
t.Helper()
cfg := network.DefaultConfig()
state := types.GenesisState{}
require.NoError(t, cfg.Codec.UnmarshalJSON(cfg.GenesisState[types.ModuleName], &state))
consensusGuardianSetIndex := &types.ConsensusGuardianSetIndex{
Index: 0,
}
nullify.Fill(&consensusGuardianSetIndex)
state.ConsensusGuardianSetIndex = consensusGuardianSetIndex
guardianSetList := []types.GuardianSet{{
Index: 0,
Keys: [][]byte{},
ExpirationTime: 0,
}}
nullify.Fill(&guardianSetList)
state.GuardianSetList = guardianSetList
buf, err := cfg.Codec.MarshalJSON(&state)
require.NoError(t, err)
cfg.GenesisState[types.ModuleName] = buf
return network.New(t, cfg), *state.ConsensusGuardianSetIndex
}
func TestShowConsensusGuardianSetIndex(t *testing.T) {
net, obj := networkWithConsensusGuardianSetIndexObjects(t)
ctx := net.Validators[0].ClientCtx
common := []string{
fmt.Sprintf("--%s=json", tmcli.OutputFlag),
}
for _, tc := range []struct {
desc string
args []string
err error
obj types.ConsensusGuardianSetIndex
}{
{
desc: "get",
args: common,
obj: obj,
},
} {
tc := tc
t.Run(tc.desc, func(t *testing.T) {
var args []string
args = append(args, tc.args...)
out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdShowConsensusGuardianSetIndex(), args)
if tc.err != nil {
stat, ok := status.FromError(tc.err)
require.True(t, ok)
require.ErrorIs(t, stat.Err(), tc.err)
} else {
require.NoError(t, err)
var resp types.QueryGetConsensusGuardianSetIndexResponse
require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp))
require.NotNil(t, resp.ConsensusGuardianSetIndex)
require.Equal(t,
nullify.Fill(&tc.obj),
nullify.Fill(&resp.ConsensusGuardianSetIndex),
)
}
})
}
}