status-im/status-go

View on GitHub
services/wallet/keycard_pairings_test.go

Summary

Maintainability
A
0 mins
Test Coverage
package wallet

import (
    "io/ioutil"
    "testing"

    "github.com/stretchr/testify/require"

    "github.com/ethereum/go-ethereum/event"

    "github.com/status-im/status-go/appdatabase"
    "github.com/status-im/status-go/multiaccounts/accounts"
    "github.com/status-im/status-go/params"
    "github.com/status-im/status-go/rpc"
    "github.com/status-im/status-go/rpc/network"
    "github.com/status-im/status-go/t/helpers"
    "github.com/status-im/status-go/walletdatabase"
)

func TestKeycardPairingsFile(t *testing.T) {
    appDB, err := helpers.SetupTestMemorySQLDB(appdatabase.DbInitializer{})
    require.NoError(t, err)

    accountsDb, err := accounts.NewDB(appDB)
    require.NoError(t, err)

    db, err := helpers.SetupTestMemorySQLDB(walletdatabase.DbInitializer{})
    require.NoError(t, err)

    accountFeed := &event.Feed{}

    service := NewService(db, accountsDb, appDB, &rpc.Client{NetworkManager: network.NewManager(db)}, accountFeed, nil, nil, nil, &params.NodeConfig{}, nil, nil, nil, nil, nil)

    data, err := service.KeycardPairings().GetPairingsJSONFileContent()
    require.NoError(t, err)
    require.Equal(t, 0, len(data))

    pairingsFile, err := ioutil.TempFile("", "keycard-pairings.json")
    require.NoError(t, err)
    defer pairingsFile.Close()

    service.KeycardPairings().SetKeycardPairingsFile(pairingsFile.Name())

    dataToStore := []byte(`
    {"2b907a26ee4319ab50d7eda44b525f6a":{"key":"cc9d96f9b65b551595f3cf7c531beacda24b4937cece7fef70f5236ee80a0808","index":0},
    "4abcc337a3dfc7e89785c427ef32983b":{"key":"3543288f50b2c0bbb2745ffd7107bc3acd105197b97384342fe864e7391a7af7","index":3},
    "4b2e0fe09f997d7ce20320c971ad54df":{"key":"843edb10045d329f4ecfac73fe66f13deb7b2b685dd54a4b2d2d700d19062391","index":0},
    "7ce8e7456eb9025a97f3579490246cae":{"key":"b12a89ca66288f4239a2b58c2bb533df2694b613eb73fc55b72391497627766f","index":1}}
    `)

    err = service.KeycardPairings().SetPairingsJSONFileContent(dataToStore)
    require.NoError(t, err)

    data, err = service.KeycardPairings().GetPairingsJSONFileContent()
    require.NoError(t, err)
    require.Equal(t, len(dataToStore), len(data))
}