github.com/status-im/status-go@v1.1.0/services/wallet/thirdparty/fourbytegithub/client_test.go (about)

     1  package fourbytegithub
     2  
     3  import (
     4  	"net/http"
     5  	"net/http/httptest"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestRun(t *testing.T) {
    12  	srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    13  		w.WriteHeader(200)
    14  		_, err := w.Write([]byte("transfer(address,uint256)"))
    15  		if err != nil {
    16  			return
    17  		}
    18  	}))
    19  	defer srv.Close()
    20  
    21  	fb := NewClient()
    22  	fb.Client = srv.Client()
    23  	fb.URL = srv.URL
    24  
    25  	res, err := fb.Run("0xa9059cbb000000000000000000000000e0e40d81121d41a7d85d8d2462b475074f9df5ec0000000000000000000000000000000000000000000000000000000077359400")
    26  	require.Nil(t, err)
    27  	require.Equal(t, res.Signature, "transfer(address,uint256)")
    28  	require.Equal(t, res.ID, "0xa9059cbb")
    29  	require.Equal(t, res.Name, "transfer")
    30  	require.Equal(t, res.Inputs, map[string]string{
    31  		"0": "0x3030303030303030303030306530653430643831",
    32  		"1": "22252012820881184517742036120632151212095838186768864961872069019727748752739",
    33  	})
    34  }