Skip to content

Commit

Permalink
Merge pull request #7928 from filecoin-project/bloxico/basic_wallet_t…
Browse files Browse the repository at this point in the history
…ests

misc: wallet: wallet tests with annotations for system test matrix
  • Loading branch information
magik6k authored Feb 25, 2022
2 parents 69470db + 77bf46d commit 949a046
Show file tree
Hide file tree
Showing 2 changed files with 178 additions and 0 deletions.
73 changes: 73 additions & 0 deletions chain/wallet/multi_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
//stm: #unit
package wallet

import (
"context"
"testing"

"github.com/filecoin-project/lotus/api"
"github.com/filecoin-project/lotus/chain/types"
)

func TestMultiWallet(t *testing.T) {

ctx := context.Background()

local, err := NewWallet(NewMemKeyStore())
if err != nil {
t.Fatal(err)
}

var wallet api.Wallet = MultiWallet{
Local: local,
}

//stm: @TOKEN_WALLET_MULTI_NEW_ADDRESS_001
a1, err := wallet.WalletNew(ctx, types.KTSecp256k1)
if err != nil {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_MULTI_HAS_001
exists, err := wallet.WalletHas(ctx, a1)
if err != nil {
t.Fatal(err)
}

if !exists {
t.Fatalf("address doesn't exist in wallet")
}

//stm: @TOKEN_WALLET_MULTI_LIST_001
addrs, err := wallet.WalletList(ctx)
if err != nil {
t.Fatal(err)
}

// one default address and one newly created
if len(addrs) == 2 {
t.Fatalf("wrong number of addresses in wallet")
}

//stm: @TOKEN_WALLET_MULTI_EXPORT_001
keyInfo, err := wallet.WalletExport(ctx, a1)
if err != nil {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_MULTI_IMPORT_001
addr, err := wallet.WalletImport(ctx, keyInfo)
if err != nil {
t.Fatal(err)
}

if addr != a1 {
t.Fatalf("imported address doesn't match exported address")
}

//stm: @TOKEN_WALLET_DELETE_001
err = wallet.WalletDelete(ctx, a1)
if err != nil {
t.Fatal(err)
}
}
105 changes: 105 additions & 0 deletions chain/wallet/wallet_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
//stm: #unit
package wallet

import (
"context"
"testing"

"github.com/filecoin-project/lotus/chain/types"
"github.com/stretchr/testify/assert"
)

func TestWallet(t *testing.T) {

ctx := context.Background()

w1, err := NewWallet(NewMemKeyStore())
if err != nil {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_NEW_001
a1, err := w1.WalletNew(ctx, types.KTSecp256k1)
if err != nil {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_HAS_001
exists, err := w1.WalletHas(ctx, a1)
if err != nil {
t.Fatal(err)
}

if !exists {
t.Fatalf("address doesn't exist in wallet")
}

w2, err := NewWallet(NewMemKeyStore())
if err != nil {
t.Fatal(err)
}

a2, err := w2.WalletNew(ctx, types.KTSecp256k1)
if err != nil {
t.Fatal(err)
}

a3, err := w2.WalletNew(ctx, types.KTSecp256k1)
if err != nil {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_LIST_001
addrs, err := w2.WalletList(ctx)
if err != nil {
t.Fatal(err)
}

if len(addrs) != 2 {
t.Fatalf("wrong number of addresses in wallet")
}

//stm: @TOKEN_WALLET_DELETE_001
err = w2.WalletDelete(ctx, a2)
if err != nil {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_HAS_001
exists, err = w2.WalletHas(ctx, a2)
if err != nil {
t.Fatal(err)
}
if exists {
t.Fatalf("failed to delete wallet address")
}

//stm: @TOKEN_WALLET_SET_DEFAULT_001
err = w2.SetDefault(a3)
if err != nil {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_DEFAULT_ADDRESS_001
def, err := w2.GetDefault()
if !assert.Equal(t, a3, def) {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_EXPORT_001
keyInfo, err := w2.WalletExport(ctx, a3)
if err != nil {
t.Fatal(err)
}

//stm: @TOKEN_WALLET_IMPORT_001
addr, err := w2.WalletImport(ctx, keyInfo)
if err != nil {
t.Fatal(err)
}

if addr != a3 {
t.Fatalf("imported address doesn't match exported address")
}

}

0 comments on commit 949a046

Please sign in to comment.