70 lines
2.2 KiB
Go
70 lines
2.2 KiB
Go
package cmd_test
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
|
|
"gotest.tools/v3/assert"
|
|
|
|
"cosmossdk.io/tools/confix/cmd"
|
|
|
|
"github.com/cosmos/cosmos-sdk/client"
|
|
"github.com/cosmos/cosmos-sdk/client/config"
|
|
clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli"
|
|
)
|
|
|
|
// initClientContext initiates client Context for tests
|
|
func initClientContext(t *testing.T) (client.Context, func()) {
|
|
t.Helper()
|
|
home := t.TempDir()
|
|
chainID := "test-chain"
|
|
clientCtx := client.Context{}.
|
|
WithHomeDir(home).
|
|
WithViper("").
|
|
WithChainID(chainID)
|
|
clientCtx, err := config.ReadFromClientConfig(clientCtx)
|
|
assert.NilError(t, err)
|
|
assert.Equal(t, clientCtx.ChainID, chainID)
|
|
|
|
_ = os.Link(filepath.Join(home, "config", "client.toml"), filepath.Join(home, "config", "unsupported.toml"))
|
|
return clientCtx, func() { _ = os.RemoveAll(home) }
|
|
}
|
|
|
|
func TestSetCmd(t *testing.T) {
|
|
clientCtx, cleanup := initClientContext(t)
|
|
defer cleanup()
|
|
|
|
_, err := clitestutil.ExecTestCLICmd(clientCtx, cmd.SetCommand(), []string{"unexisting", "foo", "foo"})
|
|
assert.ErrorContains(t, err, "no such file or directory")
|
|
|
|
out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd.GetCommand(), []string{"client", "chain-id"})
|
|
assert.NilError(t, err)
|
|
assert.Equal(t, strings.TrimSpace(out.String()), `"test-chain"`)
|
|
|
|
newValue := "new-chain"
|
|
_, err = clitestutil.ExecTestCLICmd(clientCtx, cmd.SetCommand(), []string{"client", "chain-id", newValue})
|
|
assert.NilError(t, err)
|
|
|
|
out, err = clitestutil.ExecTestCLICmd(clientCtx, cmd.GetCommand(), []string{"client", "chain-id"})
|
|
assert.NilError(t, err)
|
|
assert.Equal(t, strings.TrimSpace(out.String()), fmt.Sprintf(`"%s"`, newValue))
|
|
}
|
|
|
|
func TestGetCmd(t *testing.T) {
|
|
clientCtx, cleanup := initClientContext(t)
|
|
defer cleanup()
|
|
|
|
out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd.GetCommand(), []string{"client", "chain-id"})
|
|
assert.NilError(t, err)
|
|
assert.Equal(t, strings.TrimSpace(out.String()), `"test-chain"`)
|
|
|
|
_, err = clitestutil.ExecTestCLICmd(clientCtx, cmd.GetCommand(), []string{"client", "foo"})
|
|
assert.Error(t, err, `key "foo" not found`)
|
|
|
|
_, err = clitestutil.ExecTestCLICmd(clientCtx, cmd.GetCommand(), []string{"unexisting", "foo"})
|
|
assert.ErrorContains(t, err, "no such file or directory")
|
|
}
|