mirror of
https://github.com/status-im/status-go.git
synced 2025-02-16 08:50:09 +00:00
fix(wallet) fix pending transactions by using the wallet DB
Initialize node tests wallet database required PendingTxTracker Updates status-desktop #11987
This commit is contained in:
parent
6033918892
commit
b297cf0ae2
@ -30,7 +30,7 @@ func TestStatusNodeStart(t *testing.T) {
|
|||||||
require.Nil(t, n.RPCClient())
|
require.Nil(t, n.RPCClient())
|
||||||
require.Equal(t, 0, n.PeerCount())
|
require.Equal(t, 0, n.PeerCount())
|
||||||
|
|
||||||
db, stop, err := setupTestDB()
|
appDB, walletDB, stop, err := setupTestDBs()
|
||||||
defer func() {
|
defer func() {
|
||||||
err := stop()
|
err := stop()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -38,8 +38,8 @@ func TestStatusNodeStart(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, db)
|
n.appDB = appDB
|
||||||
n.appDB = db
|
n.walletDB = walletDB
|
||||||
|
|
||||||
// start node
|
// start node
|
||||||
require.NoError(t, n.Start(config, nil))
|
require.NoError(t, n.Start(config, nil))
|
||||||
|
@ -3,6 +3,7 @@ package node
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
@ -14,6 +15,7 @@ import (
|
|||||||
"github.com/status-im/status-go/multiaccounts"
|
"github.com/status-im/status-go/multiaccounts"
|
||||||
"github.com/status-im/status-go/params"
|
"github.com/status-im/status-go/params"
|
||||||
"github.com/status-im/status-go/t/helpers"
|
"github.com/status-im/status-go/t/helpers"
|
||||||
|
"github.com/status-im/status-go/walletdatabase"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TestServiceAPI struct{}
|
type TestServiceAPI struct{}
|
||||||
@ -22,8 +24,27 @@ func (api *TestServiceAPI) SomeMethod(_ context.Context) (string, error) {
|
|||||||
return "some method result", nil
|
return "some method result", nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupTestDB() (*sql.DB, func() error, error) {
|
func setupTestDBs() (appDB *sql.DB, walletDB *sql.DB, closeFn func() error, err error) {
|
||||||
return helpers.SetupTestSQLDB(appdatabase.DbInitializer{}, "tests")
|
appDB, err = helpers.SetupTestMemorySQLDB(appdatabase.DbInitializer{})
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, nil, fmt.Errorf("failed to setup app db: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
walletDB, err = helpers.SetupTestMemorySQLDB(walletdatabase.DbInitializer{})
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, nil, fmt.Errorf("failed to setup wallet db: %w", err)
|
||||||
|
}
|
||||||
|
return appDB, walletDB, func() error {
|
||||||
|
appErr := appDB.Close()
|
||||||
|
walletErr := walletDB.Close()
|
||||||
|
if appErr != nil {
|
||||||
|
return fmt.Errorf("failed to close app db: %w", appErr)
|
||||||
|
}
|
||||||
|
if walletErr != nil {
|
||||||
|
return fmt.Errorf("failed to close wallet db: %w", walletErr)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupTestMultiDB() (*multiaccounts.Database, func() error, error) {
|
func setupTestMultiDB() (*multiaccounts.Database, func() error, error) {
|
||||||
@ -47,7 +68,7 @@ func setupTestMultiDB() (*multiaccounts.Database, func() error, error) {
|
|||||||
func createAndStartStatusNode(config *params.NodeConfig) (*StatusNode, error) {
|
func createAndStartStatusNode(config *params.NodeConfig) (*StatusNode, error) {
|
||||||
statusNode := New(nil)
|
statusNode := New(nil)
|
||||||
|
|
||||||
db, stop, err := setupTestDB()
|
appDB, walletDB, stop, err := setupTestDBs()
|
||||||
defer func() {
|
defer func() {
|
||||||
err := stop()
|
err := stop()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -57,7 +78,8 @@ func createAndStartStatusNode(config *params.NodeConfig) (*StatusNode, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
statusNode.appDB = db
|
statusNode.appDB = appDB
|
||||||
|
statusNode.walletDB = walletDB
|
||||||
|
|
||||||
ma, stop2, err := setupTestMultiDB()
|
ma, stop2, err := setupTestMultiDB()
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -80,12 +102,13 @@ func createAndStartStatusNode(config *params.NodeConfig) (*StatusNode, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createStatusNode() (*StatusNode, func() error, func() error, error) {
|
func createStatusNode() (*StatusNode, func() error, func() error, error) {
|
||||||
db, stop1, err := setupTestDB()
|
appDB, walletDB, stop1, err := setupTestDBs()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, nil, err
|
return nil, nil, nil, err
|
||||||
}
|
}
|
||||||
statusNode := New(nil)
|
statusNode := New(nil)
|
||||||
statusNode.SetAppDB(db)
|
statusNode.SetAppDB(appDB)
|
||||||
|
statusNode.SetWalletDB(walletDB)
|
||||||
|
|
||||||
ma, stop2, err := setupTestMultiDB()
|
ma, stop2, err := setupTestMultiDB()
|
||||||
statusNode.SetMultiaccountsDB(ma)
|
statusNode.SetMultiaccountsDB(ma)
|
||||||
|
@ -422,7 +422,7 @@ func (b *StatusNode) ensService(timesource func() time.Time) *ens.Service {
|
|||||||
|
|
||||||
func (b *StatusNode) pendingTrackerService(walletFeed *event.Feed) *transactions.PendingTxTracker {
|
func (b *StatusNode) pendingTrackerService(walletFeed *event.Feed) *transactions.PendingTxTracker {
|
||||||
if b.pendingTracker == nil {
|
if b.pendingTracker == nil {
|
||||||
b.pendingTracker = transactions.NewPendingTxTracker(b.appDB, b.rpcClient, b.rpcFiltersSrvc, walletFeed)
|
b.pendingTracker = transactions.NewPendingTxTracker(b.walletDB, b.rpcClient, b.rpcFiltersSrvc, walletFeed)
|
||||||
}
|
}
|
||||||
return b.pendingTracker
|
return b.pendingTracker
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user