github.com/Finschia/finschia-sdk@v0.48.1/x/genutil/client/testutil/helpers.go (about)

     1  package testutil
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	ostcfg "github.com/Finschia/ostracon/config"
     8  	"github.com/Finschia/ostracon/libs/cli"
     9  	"github.com/Finschia/ostracon/libs/log"
    10  	"github.com/spf13/viper"
    11  
    12  	"github.com/Finschia/finschia-sdk/client"
    13  	"github.com/Finschia/finschia-sdk/codec"
    14  	"github.com/Finschia/finschia-sdk/server"
    15  	"github.com/Finschia/finschia-sdk/testutil"
    16  	"github.com/Finschia/finschia-sdk/types/module"
    17  	genutilcli "github.com/Finschia/finschia-sdk/x/genutil/client/cli"
    18  )
    19  
    20  func ExecInitCmd(testMbm module.BasicManager, home string, cdc codec.Codec) error {
    21  	logger := log.NewNopLogger()
    22  	cfg, err := CreateDefaultTendermintConfig(home)
    23  	if err != nil {
    24  		return err
    25  	}
    26  
    27  	cmd := genutilcli.InitCmd(testMbm, home)
    28  	serverCtx := server.NewContext(viper.New(), cfg, logger)
    29  	clientCtx := client.Context{}.WithCodec(cdc).WithHomeDir(home)
    30  
    31  	_, out := testutil.ApplyMockIO(cmd)
    32  	clientCtx = clientCtx.WithOutput(out)
    33  
    34  	ctx := context.Background()
    35  	ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
    36  	ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx)
    37  
    38  	cmd.SetArgs([]string{"appnode-test", fmt.Sprintf("--%s=%s", cli.HomeFlag, home)})
    39  
    40  	return cmd.ExecuteContext(ctx)
    41  }
    42  
    43  func CreateDefaultTendermintConfig(rootDir string) (*ostcfg.Config, error) {
    44  	conf := ostcfg.DefaultConfig()
    45  	conf.SetRoot(rootDir)
    46  	ostcfg.EnsureRoot(rootDir)
    47  
    48  	if err := conf.ValidateBasic(); err != nil {
    49  		return nil, fmt.Errorf("error in config file: %v", err)
    50  	}
    51  
    52  	return conf, nil
    53  }