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 }