86 lines
2.7 KiB
Go
86 lines
2.7 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/spf13/viper"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
corectx "cosmossdk.io/core/context"
|
|
"cosmossdk.io/depinject"
|
|
"cosmossdk.io/log"
|
|
"cosmossdk.io/x/auth"
|
|
banktypes "cosmossdk.io/x/bank/types"
|
|
"cosmossdk.io/x/staking"
|
|
|
|
"github.com/cosmos/cosmos-sdk/client"
|
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
|
codectestutil "github.com/cosmos/cosmos-sdk/codec/testutil"
|
|
"github.com/cosmos/cosmos-sdk/testutil/configurator"
|
|
"github.com/cosmos/cosmos-sdk/types/module"
|
|
moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
|
|
genutiltest "github.com/cosmos/cosmos-sdk/x/genutil/client/testutil"
|
|
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
|
|
)
|
|
|
|
func Test_TestnetCmd(t *testing.T) {
|
|
config := configurator.NewAppConfig(
|
|
configurator.AccountsModule(),
|
|
configurator.AuthModule(),
|
|
configurator.BankModule(),
|
|
configurator.GenutilModule(),
|
|
configurator.StakingModule(),
|
|
configurator.ConsensusModule(),
|
|
configurator.TxModule(),
|
|
configurator.MintModule(),
|
|
)
|
|
var moduleManager *module.Manager
|
|
err := depinject.Inject(
|
|
depinject.Configs(config,
|
|
depinject.Supply(log.NewNopLogger()),
|
|
),
|
|
&moduleManager,
|
|
)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, moduleManager)
|
|
require.Len(t, moduleManager.Modules, 8)
|
|
|
|
home := t.TempDir()
|
|
cdcOpts := codectestutil.CodecOptions{}
|
|
encodingConfig := moduletestutil.MakeTestEncodingConfig(cdcOpts, auth.AppModule{}, staking.AppModule{})
|
|
logger := log.NewNopLogger()
|
|
viper := viper.New()
|
|
cfg, err := genutiltest.CreateDefaultCometConfig(home)
|
|
require.NoError(t, err)
|
|
|
|
err = genutiltest.ExecInitCmd(moduleManager, home, encodingConfig.Codec)
|
|
require.NoError(t, err)
|
|
|
|
err = genutiltest.WriteAndTrackCometConfig(viper, home, cfg)
|
|
require.NoError(t, err)
|
|
clientCtx := client.Context{}.
|
|
WithCodec(encodingConfig.Codec).
|
|
WithHomeDir(home).
|
|
WithTxConfig(encodingConfig.TxConfig).
|
|
WithAddressCodec(cdcOpts.GetAddressCodec()).
|
|
WithValidatorAddressCodec(cdcOpts.GetValidatorCodec())
|
|
|
|
ctx := context.Background()
|
|
ctx = context.WithValue(ctx, corectx.ViperContextKey, viper)
|
|
ctx = context.WithValue(ctx, corectx.LoggerContextKey, logger)
|
|
ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
|
|
cmd := testnetInitFilesCmd(moduleManager)
|
|
cmd.SetArgs([]string{fmt.Sprintf("--%s=test", flags.FlagKeyringBackend), fmt.Sprintf("--output-dir=%s", home)})
|
|
err = cmd.ExecuteContext(ctx)
|
|
require.NoError(t, err)
|
|
|
|
genFile := client.GetConfigFromCmd(cmd).GenesisFile()
|
|
appState, _, err := genutiltypes.GenesisStateFromGenFile(genFile)
|
|
require.NoError(t, err)
|
|
|
|
bankGenState := banktypes.GetGenesisStateFromAppState(encodingConfig.Codec, appState)
|
|
require.NotEmpty(t, bankGenState.Supply.String())
|
|
}
|