51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package client_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/spf13/cobra"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/cosmos/cosmos-sdk/client"
|
|
)
|
|
|
|
func TestValidateCmd(t *testing.T) {
|
|
// setup root and subcommands
|
|
rootCmd := &cobra.Command{
|
|
Use: "root",
|
|
}
|
|
queryCmd := &cobra.Command{
|
|
Use: "query",
|
|
}
|
|
rootCmd.AddCommand(queryCmd)
|
|
|
|
// command being tested
|
|
distCmd := &cobra.Command{
|
|
Use: "distr",
|
|
DisableFlagParsing: true,
|
|
SuggestionsMinimumDistance: 2,
|
|
}
|
|
queryCmd.AddCommand(distCmd)
|
|
|
|
commissionCmd := &cobra.Command{
|
|
Use: "commission",
|
|
}
|
|
distCmd.AddCommand(commissionCmd)
|
|
|
|
tests := []struct {
|
|
reason string
|
|
args []string
|
|
wantErr bool
|
|
}{
|
|
{"misspelled command", []string{"commission"}, true}, // nolint: misspell
|
|
{"no command provided", []string{}, false},
|
|
{"help flag", []string{"commission", "--help"}, false}, // nolint: misspell
|
|
{"shorthand help flag", []string{"commission", "-h"}, false}, // nolint: misspell
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
err := client.ValidateCmd(distCmd, tt.args)
|
|
require.Equal(t, tt.wantErr, err != nil, tt.reason)
|
|
}
|
|
}
|