cosmos-sdk/x/auth/client/cli/encode_test.go
SaReN 72ebafeeca
Update auth cli commands (#6717)
* add utils

* update sign cmd

* update multisign cmd

* update sign batch cmd

* update genutil cmd

* add wrap tx builder

* update gentx cli

* update validate sigs cmd

* fix lint

* add flag reader to cli

* update marshaler for batchscan

* add register query server

* update to master

* remove depricated methods

* fix keyring issue

* update wraptx

* Fix batch scan

* fix register interfaces issue

* update printOutput

* Update Validate Sigs test

* WIP on signature JSON

* Cleanup

* Cleanup

* Test fixes

* Test fixes

* Fixes

* WIP on tests

* Fix gov tests

* fix lint

* fix MultiSign tests

* fix tests

* refactor tests

* Cleanup

* Address review comments

* Update encode

* Test fix

* Rename SignData func

* Fix lint

* Fix lint

* Revert ReadTxCommandFlags

Co-authored-by: Aaron Craelius <aaron@regen.network>
Co-authored-by: Aaron Craelius <aaronc@users.noreply.github.com>
2020-07-29 22:33:42 +00:00

86 lines
2.3 KiB
Go

package cli
import (
"context"
"encoding/base64"
"testing"
"github.com/stretchr/testify/require"
"github.com/cosmos/cosmos-sdk/client"
simappparams "github.com/cosmos/cosmos-sdk/simapp/params"
"github.com/cosmos/cosmos-sdk/testutil"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
)
func TestGetCommandEncode(t *testing.T) {
encodingConfig := simappparams.MakeEncodingConfig()
cmd := GetEncodeCommand()
_ = testutil.ApplyMockIODiscardOutErr(cmd)
authtypes.RegisterCodec(encodingConfig.Amino)
sdk.RegisterCodec(encodingConfig.Amino)
txCfg := encodingConfig.TxConfig
// Build a test transaction
builder := txCfg.NewTxBuilder()
builder.SetGasLimit(50000)
builder.SetFeeAmount(sdk.Coins{sdk.NewInt64Coin("atom", 150)})
builder.SetMemo("foomemo")
jsonEncoded, err := txCfg.TxJSONEncoder()(builder.GetTx())
require.NoError(t, err)
txFile, cleanup := testutil.WriteToNewTempFile(t, string(jsonEncoded))
txFileName := txFile.Name()
t.Cleanup(cleanup)
ctx := context.Background()
clientCtx := client.Context{}.
WithTxConfig(encodingConfig.TxConfig).
WithJSONMarshaler(encodingConfig.Marshaler)
ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
cmd.SetArgs([]string{txFileName})
err = cmd.ExecuteContext(ctx)
require.NoError(t, err)
}
func TestGetCommandDecode(t *testing.T) {
encodingConfig := simappparams.MakeEncodingConfig()
clientCtx := client.Context{}.
WithTxConfig(encodingConfig.TxConfig).
WithJSONMarshaler(encodingConfig.Marshaler)
cmd := GetDecodeCommand()
_ = testutil.ApplyMockIODiscardOutErr(cmd)
sdk.RegisterCodec(encodingConfig.Amino)
txCfg := encodingConfig.TxConfig
clientCtx = clientCtx.WithTxConfig(txCfg)
// Build a test transaction
builder := txCfg.NewTxBuilder()
builder.SetGasLimit(50000)
builder.SetFeeAmount(sdk.Coins{sdk.NewInt64Coin("atom", 150)})
builder.SetMemo("foomemo")
// Encode transaction
txBytes, err := clientCtx.TxConfig.TxEncoder()(builder.GetTx())
require.NoError(t, err)
// Convert the transaction into base64 encoded string
base64Encoded := base64.StdEncoding.EncodeToString(txBytes)
ctx := context.Background()
ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
// Execute the command
cmd.SetArgs([]string{base64Encoded})
require.NoError(t, cmd.ExecuteContext(ctx))
}