github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/client/keys/update_test.go (about) 1 package keys 2 3 import ( 4 "testing" 5 6 "github.com/spf13/viper" 7 "github.com/stretchr/testify/assert" 8 9 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/flags" 10 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/crypto/keys" 11 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/tests" 12 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 13 ) 14 15 func Test_updateKeyCommand(t *testing.T) { 16 cmd := UpdateKeyCommand() 17 assert.NotNil(t, cmd) 18 // No flags or defaults to validate 19 } 20 21 func Test_runUpdateCmd(t *testing.T) { 22 fakeKeyName1 := "runUpdateCmd_Key1" 23 fakeKeyName2 := "runUpdateCmd_Key2" 24 25 cmd := UpdateKeyCommand() 26 27 // fails because it requests a password 28 assert.EqualError(t, runUpdateCmd(cmd, []string{fakeKeyName1}), "EOF") 29 30 // try again 31 mockIn, _, _ := tests.ApplyMockIO(cmd) 32 mockIn.Reset("pass1234\n") 33 assert.EqualError(t, runUpdateCmd(cmd, []string{fakeKeyName1}), "Key runUpdateCmd_Key1 not found") 34 35 // Prepare a key base 36 // Now add a temporary keybase 37 kbHome, cleanUp1 := tests.NewTestCaseDir(t) 38 defer cleanUp1() 39 viper.Set(flags.FlagHome, kbHome) 40 41 kb, err := NewKeyBaseFromDir(viper.GetString(flags.FlagHome)) 42 assert.NoError(t, err) 43 _, err = kb.CreateAccount(fakeKeyName1, tests.TestMnemonic, "", "", sdk.FullFundraiserPath, keys.Secp256k1) 44 assert.NoError(t, err) 45 _, err = kb.CreateAccount(fakeKeyName2, tests.TestMnemonic, "", "", "m/44'/118'/0'/0/1", keys.Secp256k1) 46 assert.NoError(t, err) 47 48 // Try again now that we have keys 49 // Incorrect key type 50 mockIn.Reset("pass1234\nNew1234\nNew1234") 51 err = runUpdateCmd(cmd, []string{fakeKeyName1}) 52 assert.EqualError(t, err, "locally stored key required. Received: keys.offlineInfo") 53 54 // TODO: Check for other type types? 55 }