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  }