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 }