github.com/status-im/status-go@v1.1.0/services/connector/commands/test_helpers.go (about)

     1  package commands
     2  
     3  import (
     4  	"database/sql"
     5  	"encoding/json"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/require"
     9  
    10  	"github.com/status-im/status-go/eth-node/types"
    11  	"github.com/status-im/status-go/params"
    12  	persistence "github.com/status-im/status-go/services/connector/database"
    13  	"github.com/status-im/status-go/signal"
    14  	"github.com/status-im/status-go/t/helpers"
    15  	"github.com/status-im/status-go/walletdatabase"
    16  )
    17  
    18  var testDAppData = signal.ConnectorDApp{
    19  	URL:     "http://testDAppURL",
    20  	Name:    "testDAppName",
    21  	IconURL: "http://testDAppIconUrl",
    22  }
    23  
    24  type RPCClientMock struct {
    25  	response string
    26  }
    27  
    28  type NetworkManagerMock struct {
    29  	networks []*params.Network
    30  }
    31  
    32  type EventType struct {
    33  	Type  string          `json:"type"`
    34  	Event json.RawMessage `json:"event"`
    35  }
    36  
    37  func (c *RPCClientMock) CallRaw(request string) string {
    38  	return c.response
    39  }
    40  
    41  func (c *RPCClientMock) SetResponse(response string) {
    42  	c.response = response
    43  }
    44  
    45  func (nm *NetworkManagerMock) GetActiveNetworks() ([]*params.Network, error) {
    46  	return nm.networks, nil
    47  }
    48  
    49  func (nm *NetworkManagerMock) SetNetworks(networks []*params.Network) {
    50  	nm.networks = networks
    51  }
    52  
    53  func SetupTestDB(t *testing.T) (db *sql.DB, close func()) {
    54  	db, err := helpers.SetupTestMemorySQLDB(walletdatabase.DbInitializer{})
    55  	require.NoError(t, err)
    56  	return db, func() {
    57  		require.NoError(t, db.Close())
    58  	}
    59  }
    60  
    61  func PersistDAppData(db *sql.DB, dApp signal.ConnectorDApp, sharedAccount types.Address, chainID uint64) error {
    62  	dAppDb := persistence.DApp{
    63  		URL:           dApp.URL,
    64  		Name:          dApp.Name,
    65  		IconURL:       dApp.IconURL,
    66  		SharedAccount: sharedAccount,
    67  		ChainID:       chainID,
    68  	}
    69  
    70  	return persistence.UpsertDApp(db, &dAppDb)
    71  }
    72  
    73  func ConstructRPCRequest(method string, params []interface{}, dApp *signal.ConnectorDApp) (RPCRequest, error) {
    74  	request := RPCRequest{
    75  		JSONRPC: "2.0",
    76  		ID:      1,
    77  		Method:  method,
    78  		Params:  params,
    79  	}
    80  
    81  	if dApp != nil {
    82  		request.URL = dApp.URL
    83  		request.Name = dApp.Name
    84  		request.IconURL = dApp.IconURL
    85  	}
    86  
    87  	return request, nil
    88  }