github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/server/init_test.go (about)

     1  package server_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/keys"
     9  	crkeys "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/crypto/keys"
    10  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/server"
    11  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/tests"
    12  )
    13  
    14  func TestGenerateCoinKey(t *testing.T) {
    15  	t.Parallel()
    16  	addr, mnemonic, err := server.GenerateCoinKey()
    17  	require.NoError(t, err)
    18  
    19  	// Test creation
    20  	info, err := keys.NewInMemoryKeyBase().CreateAccount("xxx", mnemonic, "", "012345678", crkeys.CreateHDPath(0, 0).String(), crkeys.Secp256k1)
    21  	require.NoError(t, err)
    22  	require.Equal(t, addr, info.GetAddress())
    23  }
    24  
    25  func TestGenerateSaveCoinKey(t *testing.T) {
    26  	t.Parallel()
    27  	dir, cleanup := tests.NewTestCaseDir(t)
    28  	defer cleanup() // clean after itself
    29  
    30  	kb, err := crkeys.NewKeyring(t.Name(), "test", dir, nil)
    31  	require.NoError(t, err)
    32  
    33  	addr, mnemonic, err := server.GenerateSaveCoinKey(kb, "keyname", "012345678", false, "")
    34  	require.NoError(t, err)
    35  
    36  	// Test key was actually saved
    37  	info, err := kb.Get("keyname")
    38  	require.NoError(t, err)
    39  	require.Equal(t, addr, info.GetAddress())
    40  
    41  	// Test in-memory recovery
    42  	info, err = keys.NewInMemoryKeyBase().CreateAccount("xxx", mnemonic, "", "012345678", crkeys.CreateHDPath(0, 0).String(), crkeys.Secp256k1)
    43  	require.NoError(t, err)
    44  	require.Equal(t, addr, info.GetAddress())
    45  }
    46  
    47  func TestGenerateSaveCoinKeyOverwriteFlag(t *testing.T) {
    48  	t.Parallel()
    49  	dir, cleanup := tests.NewTestCaseDir(t)
    50  	defer cleanup() // clean after itself
    51  
    52  	kb, err := crkeys.NewKeyring(t.Name(), "test", dir, nil)
    53  	require.NoError(t, err)
    54  
    55  	keyname := "justakey"
    56  	addr1, _, err := server.GenerateSaveCoinKey(kb, keyname, "012345678", false, "")
    57  	require.NoError(t, err)
    58  
    59  	// Test overwrite with overwrite=false
    60  	_, _, err = server.GenerateSaveCoinKey(kb, keyname, "012345678", false, "")
    61  	require.Error(t, err)
    62  
    63  	// Test overwrite with overwrite=true
    64  	addr2, _, err := server.GenerateSaveCoinKey(kb, keyname, "012345678", true, "")
    65  	require.NoError(t, err)
    66  
    67  	require.NotEqual(t, addr1, addr2)
    68  }