github.com/cosmos/cosmos-sdk@v0.50.10/client/keys/mnemonic_test.go (about) 1 package keys 2 3 import ( 4 "fmt" 5 "strings" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 10 "github.com/cosmos/cosmos-sdk/testutil" 11 ) 12 13 func Test_RunMnemonicCmdNormal(t *testing.T) { 14 cmd := MnemonicKeyCommand() 15 _ = testutil.ApplyMockIODiscardOutErr(cmd) 16 cmd.SetArgs([]string{}) 17 require.NoError(t, cmd.Execute()) 18 } 19 20 func Test_RunMnemonicCmdUser(t *testing.T) { 21 cmd := MnemonicKeyCommand() 22 _ = testutil.ApplyMockIODiscardOutErr(cmd) 23 24 cmd.SetArgs([]string{fmt.Sprintf("--%s=1", flagUserEntropy)}) 25 err := cmd.Execute() 26 require.Error(t, err) 27 require.Equal(t, "EOF", err.Error()) 28 29 // Try again 30 mockIn := testutil.ApplyMockIODiscardOutErr(cmd) 31 mockIn.Reset("Hi!\n") 32 err = cmd.Execute() 33 require.Error(t, err) 34 require.Equal(t, 35 "256-bits is 43 characters in Base-64, and 100 in Base-6. You entered 3, and probably want more", 36 err.Error()) 37 38 // Now provide "good" entropy :) 39 fakeEntropy := strings.Repeat(":)", 40) + "\ny\n" // entropy + accept count 40 mockIn.Reset(fakeEntropy) 41 require.NoError(t, cmd.Execute()) 42 43 // Now provide "good" entropy but no answer 44 fakeEntropy = strings.Repeat(":)", 40) + "\n" // entropy + accept count 45 mockIn.Reset(fakeEntropy) 46 require.Error(t, cmd.Execute()) 47 48 // Now provide "good" entropy but say no 49 fakeEntropy = strings.Repeat(":)", 40) + "\nn\n" // entropy + accept count 50 mockIn.Reset(fakeEntropy) 51 require.NoError(t, cmd.Execute()) 52 }