73 lines
1.8 KiB
Go
73 lines
1.8 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"
|
|
|
|
"cosmos-test/testutil/network"
|
|
"cosmos-test/testutil/nullify"
|
|
"cosmos-test/x/cosmostest/client/cli"
|
|
"cosmos-test/x/cosmostest/types"
|
|
)
|
|
|
|
func networkWithNextAuctionObjects(t *testing.T) (*network.Network, types.NextAuction) {
|
|
t.Helper()
|
|
cfg := network.DefaultConfig()
|
|
state := types.GenesisState{}
|
|
require.NoError(t, cfg.Codec.UnmarshalJSON(cfg.GenesisState[types.ModuleName], &state))
|
|
|
|
nextAuction := &types.NextAuction{}
|
|
nullify.Fill(&nextAuction)
|
|
state.NextAuction = nextAuction
|
|
buf, err := cfg.Codec.MarshalJSON(&state)
|
|
require.NoError(t, err)
|
|
cfg.GenesisState[types.ModuleName] = buf
|
|
return network.New(t, cfg), *state.NextAuction
|
|
}
|
|
|
|
func TestShowNextAuction(t *testing.T) {
|
|
net, obj := networkWithNextAuctionObjects(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.NextAuction
|
|
}{
|
|
{
|
|
desc: "get",
|
|
args: common,
|
|
obj: obj,
|
|
},
|
|
} {
|
|
t.Run(tc.desc, func(t *testing.T) {
|
|
var args []string
|
|
args = append(args, tc.args...)
|
|
out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdShowNextAuction(), 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.QueryGetNextAuctionResponse
|
|
require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp))
|
|
require.NotNil(t, resp.NextAuction)
|
|
require.Equal(t,
|
|
nullify.Fill(&tc.obj),
|
|
nullify.Fill(&resp.NextAuction),
|
|
)
|
|
}
|
|
})
|
|
}
|
|
}
|