github.com/status-im/status-go@v1.1.0/services/wallet/keycard_pairings_test.go (about)

     1  package wallet
     2  
     3  import (
     4  	"io/ioutil"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/ethereum/go-ethereum/event"
    10  
    11  	"github.com/status-im/status-go/appdatabase"
    12  	"github.com/status-im/status-go/multiaccounts/accounts"
    13  	"github.com/status-im/status-go/params"
    14  	"github.com/status-im/status-go/rpc"
    15  	"github.com/status-im/status-go/rpc/network"
    16  	"github.com/status-im/status-go/t/helpers"
    17  	"github.com/status-im/status-go/walletdatabase"
    18  )
    19  
    20  func TestKeycardPairingsFile(t *testing.T) {
    21  	appDB, err := helpers.SetupTestMemorySQLDB(appdatabase.DbInitializer{})
    22  	require.NoError(t, err)
    23  
    24  	accountsDb, err := accounts.NewDB(appDB)
    25  	require.NoError(t, err)
    26  
    27  	db, err := helpers.SetupTestMemorySQLDB(walletdatabase.DbInitializer{})
    28  	require.NoError(t, err)
    29  
    30  	accountFeed := &event.Feed{}
    31  
    32  	service := NewService(db, accountsDb, appDB, &rpc.Client{NetworkManager: network.NewManager(db)}, accountFeed, nil, nil, nil, &params.NodeConfig{}, nil, nil, nil, nil, nil, "")
    33  
    34  	data, err := service.KeycardPairings().GetPairingsJSONFileContent()
    35  	require.NoError(t, err)
    36  	require.Equal(t, 0, len(data))
    37  
    38  	pairingsFile, err := ioutil.TempFile("", "keycard-pairings.json")
    39  	require.NoError(t, err)
    40  	defer pairingsFile.Close()
    41  
    42  	service.KeycardPairings().SetKeycardPairingsFile(pairingsFile.Name())
    43  
    44  	dataToStore := []byte(`
    45  	{"2b907a26ee4319ab50d7eda44b525f6a":{"key":"cc9d96f9b65b551595f3cf7c531beacda24b4937cece7fef70f5236ee80a0808","index":0},
    46  	"4abcc337a3dfc7e89785c427ef32983b":{"key":"3543288f50b2c0bbb2745ffd7107bc3acd105197b97384342fe864e7391a7af7","index":3},
    47  	"4b2e0fe09f997d7ce20320c971ad54df":{"key":"843edb10045d329f4ecfac73fe66f13deb7b2b685dd54a4b2d2d700d19062391","index":0},
    48  	"7ce8e7456eb9025a97f3579490246cae":{"key":"b12a89ca66288f4239a2b58c2bb533df2694b613eb73fc55b72391497627766f","index":1}}
    49  	`)
    50  
    51  	err = service.KeycardPairings().SetPairingsJSONFileContent(dataToStore)
    52  	require.NoError(t, err)
    53  
    54  	data, err = service.KeycardPairings().GetPairingsJSONFileContent()
    55  	require.NoError(t, err)
    56  	require.Equal(t, len(dataToStore), len(data))
    57  }