github.com/status-im/status-go@v1.1.0/services/wakuext/api_test.go (about)

     1  package wakuext
     2  
     3  import (
     4  	"io/ioutil"
     5  	"testing"
     6  
     7  	"go.uber.org/zap"
     8  
     9  	"github.com/stretchr/testify/require"
    10  	"github.com/syndtr/goleveldb/leveldb"
    11  	"github.com/syndtr/goleveldb/leveldb/storage"
    12  
    13  	"github.com/ethereum/go-ethereum/event"
    14  	"github.com/status-im/status-go/appdatabase"
    15  	gethbridge "github.com/status-im/status-go/eth-node/bridge/geth"
    16  	"github.com/status-im/status-go/eth-node/crypto"
    17  	"github.com/status-im/status-go/multiaccounts"
    18  	"github.com/status-im/status-go/params"
    19  	"github.com/status-im/status-go/services/ext"
    20  	"github.com/status-im/status-go/t/helpers"
    21  	"github.com/status-im/status-go/waku"
    22  	"github.com/status-im/status-go/walletdatabase"
    23  )
    24  
    25  func TestInitProtocol(t *testing.T) {
    26  	config := params.NodeConfig{
    27  		RootDataDir: t.TempDir(),
    28  		ShhextConfig: params.ShhextConfig{
    29  			InstallationID:          "2",
    30  			PFSEnabled:              true,
    31  			MailServerConfirmations: true,
    32  			ConnectionTarget:        10,
    33  		},
    34  	}
    35  	db, err := leveldb.Open(storage.NewMemStorage(), nil)
    36  	require.NoError(t, err)
    37  
    38  	waku := gethbridge.NewGethWakuWrapper(waku.New(nil, nil))
    39  	privateKey, err := crypto.GenerateKey()
    40  	require.NoError(t, err)
    41  
    42  	nodeWrapper := ext.NewTestNodeWrapper(nil, waku)
    43  	service := New(config, nodeWrapper, nil, nil, db)
    44  
    45  	appDB, cleanupDB, err := helpers.SetupTestSQLDB(appdatabase.DbInitializer{}, "db.sql")
    46  	defer func() { require.NoError(t, cleanupDB()) }()
    47  	require.NoError(t, err)
    48  
    49  	tmpfile, err := ioutil.TempFile("", "multi-accounts-tests-")
    50  	require.NoError(t, err)
    51  	multiAccounts, err := multiaccounts.InitializeDB(tmpfile.Name())
    52  	require.NoError(t, err)
    53  
    54  	acc := &multiaccounts.Account{KeyUID: "0xdeadbeef"}
    55  
    56  	walletDB, cleanupWalletDB, err := helpers.SetupTestSQLDB(walletdatabase.DbInitializer{}, "db-wallet.sql")
    57  	defer func() { require.NoError(t, cleanupWalletDB()) }()
    58  	require.NoError(t, err)
    59  
    60  	accountsFeed := &event.Feed{}
    61  
    62  	err = service.InitProtocol("Test", privateKey, appDB, walletDB, nil, multiAccounts, acc, nil, nil, nil, nil, nil, zap.NewNop(), accountsFeed)
    63  	require.NoError(t, err)
    64  }