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