mirror of https://github.com/certusone/santa.git
129 lines
3.0 KiB
Go
129 lines
3.0 KiB
Go
package utils
|
|
|
|
import (
|
|
"os"
|
|
"encoding/json"
|
|
|
|
"testing"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
ckeys "github.com/cosmos/cosmos-sdk/crypto/keys"
|
|
)
|
|
|
|
func TestAddKey(t *testing.T) {
|
|
app := setup(t)
|
|
defer os.RemoveAll(app.KeyDir)
|
|
|
|
out, err := app.GetKeys()
|
|
require.NoError(t, err)
|
|
require.Equal(t, 0, len(out))
|
|
|
|
// invalid name
|
|
_, err = app.AddNewKey(testInvalidName, testPassword, testMnemonic, false)
|
|
require.Error(t, err)
|
|
|
|
// invalid password
|
|
_, err = app.AddNewKey(testName, testInvalidPassword, testMnemonic, false)
|
|
require.Error(t, err)
|
|
|
|
// invalid mnemonic
|
|
_, err = app.AddNewKey(testName, testPassword, testInvalidMnemonic, false)
|
|
require.Error(t, err)
|
|
|
|
// valid add
|
|
out, err = app.AddNewKey(testName, testPassword, testMnemonic, false)
|
|
require.NoError(t, err)
|
|
|
|
var output ckeys.KeyOutput
|
|
err = json.Unmarshal(out, &output)
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, testName, output.Name)
|
|
require.Equal(t, "terra1ch5ezwqftx8z8969l30j634wzs8772xfp5wur4", output.Address)
|
|
require.Equal(t, "terrapub1addwnpepqvgqm0lpmjn4dga903dugvmw8qtzcush2agl8lx3xz2mxcm8vvwf2adw7e3", output.PubKey)
|
|
require.Equal(t, testMnemonic, output.Mnemonic)
|
|
}
|
|
|
|
func TestGetKey(t *testing.T) {
|
|
app := setup(t)
|
|
defer os.RemoveAll(app.KeyDir)
|
|
|
|
out, err := app.GetKey(testName, "acc")
|
|
require.Error(t, err)
|
|
require.Equal(t, 0, len(out))
|
|
|
|
out, err = app.AddNewKey(testName, testPassword, testMnemonic, false)
|
|
require.NoError(t, err)
|
|
|
|
_, err = app.GetKey(testName, "acc")
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestDeleteKey(t *testing.T) {
|
|
app := setup(t)
|
|
defer os.RemoveAll(app.KeyDir)
|
|
|
|
out, err := app.AddNewKey(testName, testPassword, testMnemonic, false)
|
|
require.NoError(t, err)
|
|
|
|
out, err = app.GetKeys()
|
|
require.NoError(t, err)
|
|
|
|
var outputs []ckeys.KeyOutput
|
|
err = json.Unmarshal(out, &outputs)
|
|
require.Equal(t, 1, len(outputs))
|
|
|
|
// not exist name
|
|
err = app.DeleteKey(testInvalidName, testPassword)
|
|
require.Error(t, err)
|
|
|
|
// invalid password
|
|
err = app.DeleteKey(testName, testInvalidPassword)
|
|
require.Error(t, err)
|
|
|
|
// valid
|
|
err = app.DeleteKey(testName, testPassword)
|
|
require.NoError(t, err)
|
|
|
|
out, err = app.GetKeys()
|
|
require.NoError(t, err)
|
|
|
|
var outputs2 []ckeys.KeyOutput
|
|
err = json.Unmarshal(out, &outputs2)
|
|
require.Equal(t, 0, len(outputs2))
|
|
}
|
|
|
|
func TestUpdateKey(t *testing.T) {
|
|
app := setup(t)
|
|
defer os.RemoveAll(app.KeyDir)
|
|
|
|
out, err := app.AddNewKey(testName, testPassword, testMnemonic, false)
|
|
require.NoError(t, err)
|
|
|
|
out, err = app.GetKeys()
|
|
require.NoError(t, err)
|
|
|
|
var outputs []ckeys.KeyOutput
|
|
err = json.Unmarshal(out, &outputs)
|
|
|
|
// not exist name
|
|
err = app.UpdateKey(testInvalidName, testPassword, testUpdatePassword)
|
|
require.Error(t, err)
|
|
|
|
// invalid password
|
|
err = app.UpdateKey(testName, testInvalidPassword, testUpdatePassword)
|
|
require.Error(t, err)
|
|
|
|
// valid
|
|
err = app.UpdateKey(testName, testPassword, testUpdatePassword)
|
|
require.NoError(t, err)
|
|
|
|
// with old password
|
|
err = app.DeleteKey(testName, testPassword)
|
|
require.Error(t, err)
|
|
|
|
// valid
|
|
err = app.DeleteKey(testName, testUpdatePassword)
|
|
require.NoError(t, err)
|
|
}
|