github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/crypto/keys/keybase_ledger_test.go (about)

     1  //go:build ledger_suite
     2  // +build ledger_suite
     3  
     4  package keys
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestCreateLedgerUnsupportedAlgo(t *testing.T) {
    14  	t.Parallel()
    15  
    16  	kb := NewInMemory()
    17  	_, err := kb.CreateLedger("some_account", Ed25519, "cosmos", 0, 1)
    18  	assert.Error(t, err)
    19  	assert.Equal(t, "unsupported signing algo: only secp256k1 is supported", err.Error())
    20  }
    21  
    22  func TestCreateLedger(t *testing.T) {
    23  	t.Parallel()
    24  
    25  	kb := NewInMemory()
    26  
    27  	// test_cover and test_unit will result in different answers
    28  	// test_cover does not compile some dependencies so ledger is disabled
    29  	// test_unit may add a ledger mock
    30  	// both cases are acceptable
    31  	_, err := kb.CreateLedger("some_account", Secp256k1, "cosmos", 3, 1)
    32  	require.NoError(t, err)
    33  
    34  	// Check that restoring the key gets the same results
    35  	restoredKey, err := kb.GetByName("some_account")
    36  	assert.NotNil(t, restoredKey)
    37  	assert.Equal(t, "some_account", restoredKey.GetName())
    38  	assert.Equal(t, TypeLedger, restoredKey.GetType())
    39  
    40  	path, err := restoredKey.GetPath()
    41  	assert.NoError(t, err)
    42  	assert.Equal(t, "44'/118'/3'/0/1", path.String())
    43  }