2019-02-08 12:45:23 -08:00
|
|
|
package keys
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/spf13/viper"
|
2019-05-28 01:44:04 -07:00
|
|
|
"github.com/stretchr/testify/assert"
|
2019-02-08 12:45:23 -08:00
|
|
|
|
2019-05-28 01:44:04 -07:00
|
|
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
2020-01-14 07:40:10 -08:00
|
|
|
"github.com/cosmos/cosmos-sdk/crypto/keys"
|
2019-04-04 07:36:39 -07:00
|
|
|
"github.com/cosmos/cosmos-sdk/tests"
|
2019-02-08 12:45:23 -08:00
|
|
|
)
|
|
|
|
|
|
|
|
func Test_updateKeyCommand(t *testing.T) {
|
2020-03-01 16:16:23 -08:00
|
|
|
assert.NotNil(t, UpdateKeyCommand())
|
2019-02-08 12:45:23 -08:00
|
|
|
// No flags or defaults to validate
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_runUpdateCmd(t *testing.T) {
|
|
|
|
fakeKeyName1 := "runUpdateCmd_Key1"
|
|
|
|
fakeKeyName2 := "runUpdateCmd_Key2"
|
|
|
|
|
2019-12-12 13:52:24 -08:00
|
|
|
cmd := UpdateKeyCommand()
|
2019-02-08 12:45:23 -08:00
|
|
|
|
|
|
|
// fails because it requests a password
|
2019-06-22 02:24:59 -07:00
|
|
|
assert.EqualError(t, runUpdateCmd(cmd, []string{fakeKeyName1}), "EOF")
|
2019-02-08 12:45:23 -08:00
|
|
|
|
|
|
|
// try again
|
2019-06-22 02:24:59 -07:00
|
|
|
mockIn, _, _ := tests.ApplyMockIO(cmd)
|
|
|
|
mockIn.Reset("pass1234\n")
|
|
|
|
assert.EqualError(t, runUpdateCmd(cmd, []string{fakeKeyName1}), "Key runUpdateCmd_Key1 not found")
|
2019-02-08 12:45:23 -08:00
|
|
|
|
|
|
|
// Prepare a key base
|
|
|
|
// Now add a temporary keybase
|
2019-02-08 13:45:41 -08:00
|
|
|
kbHome, cleanUp1 := tests.NewTestCaseDir(t)
|
2020-03-01 16:16:23 -08:00
|
|
|
t.Cleanup(cleanUp1)
|
2019-05-28 01:44:04 -07:00
|
|
|
viper.Set(flags.FlagHome, kbHome)
|
2019-02-08 12:45:23 -08:00
|
|
|
|
2020-01-22 09:54:56 -08:00
|
|
|
kb, err := NewKeyBaseFromDir(viper.GetString(flags.FlagHome))
|
2019-02-08 12:45:23 -08:00
|
|
|
assert.NoError(t, err)
|
2020-01-14 07:40:10 -08:00
|
|
|
_, err = kb.CreateAccount(fakeKeyName1, tests.TestMnemonic, "", "", "0", keys.Secp256k1)
|
2019-02-08 12:45:23 -08:00
|
|
|
assert.NoError(t, err)
|
2020-01-14 07:40:10 -08:00
|
|
|
_, err = kb.CreateAccount(fakeKeyName2, tests.TestMnemonic, "", "", "1", keys.Secp256k1)
|
2019-02-08 12:45:23 -08:00
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
// Try again now that we have keys
|
|
|
|
// Incorrect key type
|
2019-06-22 02:24:59 -07:00
|
|
|
mockIn.Reset("pass1234\nNew1234\nNew1234")
|
2019-02-08 12:45:23 -08:00
|
|
|
err = runUpdateCmd(cmd, []string{fakeKeyName1})
|
|
|
|
assert.EqualError(t, err, "locally stored key required. Received: keys.offlineInfo")
|
|
|
|
|
|
|
|
// TODO: Check for other type types?
|
|
|
|
}
|