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

     1  package commands
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"github.com/status-im/status-go/eth-node/types"
     9  )
    10  
    11  func TestFailToGetAccountWithMissingDAppFields(t *testing.T) {
    12  	db, close := SetupTestDB(t)
    13  	defer close()
    14  
    15  	cmd := &AccountsCommand{Db: db}
    16  
    17  	// Missing DApp fields
    18  	request, err := ConstructRPCRequest("eth_accounts", []interface{}{}, nil)
    19  	assert.NoError(t, err)
    20  
    21  	result, err := cmd.Execute(request)
    22  	assert.Equal(t, ErrRequestMissingDAppData, err)
    23  	assert.Empty(t, result)
    24  }
    25  
    26  func TestFailToGetAccountForUnpermittedDApp(t *testing.T) {
    27  	db, close := SetupTestDB(t)
    28  	defer close()
    29  
    30  	cmd := &AccountsCommand{Db: db}
    31  
    32  	request, err := ConstructRPCRequest("eth_accounts", []interface{}{}, &testDAppData)
    33  	assert.NoError(t, err)
    34  
    35  	result, err := cmd.Execute(request)
    36  	assert.Equal(t, ErrDAppIsNotPermittedByUser, err)
    37  	assert.Empty(t, result)
    38  }
    39  
    40  func TestGetAccountForPermittedDApp(t *testing.T) {
    41  	db, close := SetupTestDB(t)
    42  	defer close()
    43  
    44  	cmd := &AccountsCommand{Db: db}
    45  
    46  	sharedAccount := types.HexToAddress("0x6d0aa2a774b74bb1d36f97700315adf962c69fcg")
    47  
    48  	err := PersistDAppData(db, testDAppData, sharedAccount, 0x123)
    49  	assert.NoError(t, err)
    50  
    51  	request, err := ConstructRPCRequest("eth_accounts", []interface{}{}, &testDAppData)
    52  	assert.NoError(t, err)
    53  
    54  	expectedResponse := FormatAccountAddressToResponse(sharedAccount)
    55  	response, err := cmd.Execute(request)
    56  	assert.NoError(t, err)
    57  	assert.Equal(t, expectedResponse, response)
    58  }