From 9e3edfeff4a9ebbfcc7aae8002fe55b1a45aba3d Mon Sep 17 00:00:00 2001 From: ryanchrypto <12519942+ryanchrypto@users.noreply.github.com> Date: Fri, 11 Jun 2021 10:23:57 -0700 Subject: [PATCH] finish add tests --- client/keys/add_ledger_test.go | 65 ++++++++++++++++++++++++++++++++++ client/keys/add_test.go | 40 +++++++++------------ 2 files changed, 81 insertions(+), 24 deletions(-) diff --git a/client/keys/add_ledger_test.go b/client/keys/add_ledger_test.go index a5fcc304ddca..08d54561ae4e 100644 --- a/client/keys/add_ledger_test.go +++ b/client/keys/add_ledger_test.go @@ -3,8 +3,10 @@ package keys import ( + "bytes" "context" "fmt" + "io/ioutil" "testing" "github.com/stretchr/testify/require" @@ -124,3 +126,66 @@ func Test_runAddCmdLedger(t *testing.T) { "PubKeySecp256k1{034FEF9CD7C4C63588D3B03FEB5281B9D232CBA34D6F3D71AEE59211FFBFE1FE87}", key1.GetPubKey().String()) } + +func Test_runAddCmdLedgerDryRun(t *testing.T) { + testData := []struct { + name string + args []string + removed bool + }{ + { + name: "ledger account is not removed", + args: []string{ + "testkey", + fmt.Sprintf("--%s=%s", flags.FlagDryRun, "false"), + fmt.Sprintf("--%s=%s", flags.FlagUseLedger, "true"), + }, + removed: false, + }, + { + name: "ledger account is removed with dry run", + args: []string{ + "testkey", + fmt.Sprintf("--%s=%s", flags.FlagDryRun, "true"), + fmt.Sprintf("--%s=%s", flags.FlagUseLedger, "true"), + }, + removed: true, + }, + } + for _, tt := range testData { + tt := tt + t.Run(tt.name, func(t *testing.T) { + cmd := AddKeyCommand() + cmd.Flags().AddFlagSet(Commands("home").PersistentFlags()) + + kbHome := t.TempDir() + mockIn := testutil.ApplyMockIODiscardOutErr(cmd) + kb, err := keyring.New(sdk.KeyringServiceName(), keyring.BackendTest, kbHome, mockIn) + require.NoError(t, err) + + clientCtx := client.Context{}. + WithKeyringDir(kbHome). + WithKeyring(kb) + ctx := context.WithValue(context.Background(), client.ClientContextKey, &clientCtx) + + b := bytes.NewBufferString("") + cmd.SetOut(b) + + cmd.SetArgs(tt.args) + require.NoError(t, cmd.ExecuteContext(ctx)) + + if tt.removed { + _, err = kb.Key("testkey") + require.Error(t, err) + require.Equal(t, "testkey.info: key not found", err.Error()) + } else { + _, err = kb.Key("testkey") + require.NoError(t, err) + + out, err := ioutil.ReadAll(b) + require.NoError(t, err) + require.Contains(t, string(out), "name: testkey") + } + }) + } +} diff --git a/client/keys/add_test.go b/client/keys/add_test.go index 651d4e9cae51..11aa2efc598c 100644 --- a/client/keys/add_test.go +++ b/client/keys/add_test.go @@ -1,8 +1,10 @@ package keys import ( + "bytes" "context" "fmt" + "io/ioutil" "testing" "github.com/stretchr/testify/require" @@ -126,7 +128,7 @@ func Test_runAddCmdDryRun(t *testing.T) { removed bool }{ { - name: "key is not removed", + name: "account is not removed", args: []string{ "testkey", fmt.Sprintf("--%s=%s", flags.FlagDryRun, "false"), @@ -134,7 +136,7 @@ func Test_runAddCmdDryRun(t *testing.T) { removed: false, }, { - name: "key is removed with dry run", + name: "account is removed with dry run", args: []string{ "testkey", fmt.Sprintf("--%s=%s", flags.FlagDryRun, "true"), @@ -142,7 +144,7 @@ func Test_runAddCmdDryRun(t *testing.T) { removed: true, }, { - name: "multisig is not removed", + name: "multisig account is not removed", args: []string{ "testkey", fmt.Sprintf("--%s=%s", flags.FlagDryRun, "false"), @@ -151,7 +153,7 @@ func Test_runAddCmdDryRun(t *testing.T) { removed: false, }, { - name: "multisig is removed with dry run", + name: "multisig account is removed with dry run", args: []string{ "testkey", fmt.Sprintf("--%s=%s", flags.FlagDryRun, "true"), @@ -160,7 +162,7 @@ func Test_runAddCmdDryRun(t *testing.T) { removed: true, }, { - name: "pubkey is not removed", + name: "pubkey account is not removed", args: []string{ "testkey", fmt.Sprintf("--%s=%s", flags.FlagDryRun, "false"), @@ -169,7 +171,7 @@ func Test_runAddCmdDryRun(t *testing.T) { removed: false, }, { - name: "pubkey is removed with dry run", + name: "pubkey account is removed with dry run", args: []string{ "testkey", fmt.Sprintf("--%s=%s", flags.FlagDryRun, "true"), @@ -177,24 +179,6 @@ func Test_runAddCmdDryRun(t *testing.T) { }, removed: true, }, - // { - // name: "ledger key is not removed", - // args: []string{ - // "testkey", - // fmt.Sprintf("--%s=%s", flags.FlagDryRun, "false"), - // fmt.Sprintf("--%s=%s", flags.FlagUseLedger, "true"), - // }, - // removed: false, - // }, - // { - // name: "ledger key is removed with dry run", - // args: []string{ - // "testkey", - // fmt.Sprintf("--%s=%s", flags.FlagDryRun, "true"), - // fmt.Sprintf("--%s=%s", flags.FlagUseLedger, "true"), - // }, - // removed: true, - // }, } for _, tt := range testData { tt := tt @@ -222,15 +206,23 @@ func Test_runAddCmdDryRun(t *testing.T) { _ = kb.Delete("subkey") }) + b := bytes.NewBufferString("") + cmd.SetOut(b) + cmd.SetArgs(tt.args) require.NoError(t, cmd.ExecuteContext(ctx)) if tt.removed { _, err = kb.Key("testkey") require.Error(t, err) + require.Equal(t, "testkey.info: key not found", err.Error()) } else { _, err = kb.Key("testkey") require.NoError(t, err) + + out, err := ioutil.ReadAll(b) + require.NoError(t, err) + require.Contains(t, string(out), "name: testkey") } }) }