github.com/Finschia/finschia-sdk@v0.48.1/client/keys/list_test.go (about)

     1  package keys
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"testing"
     7  
     8  	"github.com/spf13/cobra"
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/Finschia/finschia-sdk/client"
    12  	"github.com/Finschia/finschia-sdk/client/flags"
    13  	"github.com/Finschia/finschia-sdk/crypto/hd"
    14  	"github.com/Finschia/finschia-sdk/crypto/keyring"
    15  	"github.com/Finschia/finschia-sdk/testutil"
    16  	"github.com/Finschia/finschia-sdk/testutil/testdata"
    17  	sdk "github.com/Finschia/finschia-sdk/types"
    18  )
    19  
    20  func Test_runListCmd(t *testing.T) {
    21  	cmd := ListKeysCmd()
    22  	cmd.Flags().AddFlagSet(Commands("home").PersistentFlags())
    23  
    24  	kbHome1 := t.TempDir()
    25  	kbHome2 := t.TempDir()
    26  
    27  	mockIn := testutil.ApplyMockIODiscardOutErr(cmd)
    28  	kb, err := keyring.New(sdk.KeyringServiceName(), keyring.BackendTest, kbHome2, mockIn)
    29  	require.NoError(t, err)
    30  
    31  	clientCtx := client.Context{}.WithKeyring(kb)
    32  	ctx := context.WithValue(context.Background(), client.ClientContextKey, &clientCtx)
    33  
    34  	path := "" // sdk.GetConfig().GetFullBIP44Path()
    35  	_, err = kb.NewAccount("something", testdata.TestMnemonic, "", path, hd.Secp256k1)
    36  	require.NoError(t, err)
    37  
    38  	t.Cleanup(func() {
    39  		kb.Delete("something") // nolint:errcheck
    40  	})
    41  
    42  	type args struct {
    43  		cmd  *cobra.Command
    44  		args []string
    45  	}
    46  
    47  	testData := []struct {
    48  		name    string
    49  		kbDir   string
    50  		wantErr bool
    51  	}{
    52  		{"keybase: empty", kbHome1, false},
    53  		{"keybase: w/key", kbHome2, false},
    54  	}
    55  	for _, tt := range testData {
    56  		tt := tt
    57  		t.Run(tt.name, func(t *testing.T) {
    58  			cmd.SetArgs([]string{
    59  				fmt.Sprintf("--%s=%s", flags.FlagHome, tt.kbDir),
    60  				fmt.Sprintf("--%s=false", flagListNames),
    61  			})
    62  
    63  			if err := cmd.ExecuteContext(ctx); (err != nil) != tt.wantErr {
    64  				t.Errorf("runListCmd() error = %v, wantErr %v", err, tt.wantErr)
    65  			}
    66  
    67  			cmd.SetArgs([]string{
    68  				fmt.Sprintf("--%s=%s", flags.FlagHome, tt.kbDir),
    69  				fmt.Sprintf("--%s=true", flagListNames),
    70  			})
    71  
    72  			if err := cmd.ExecuteContext(ctx); (err != nil) != tt.wantErr {
    73  				t.Errorf("runListCmd() error = %v, wantErr %v", err, tt.wantErr)
    74  			}
    75  		})
    76  	}
    77  }