github.com/status-im/status-go@v1.1.0/services/connector/commands/revoke_permissions_test.go (about) 1 package commands 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 9 "github.com/status-im/status-go/eth-node/types" 10 persistence "github.com/status-im/status-go/services/connector/database" 11 "github.com/status-im/status-go/signal" 12 ) 13 14 func TestFailToRevokePermissionsWithMissingDAppFields(t *testing.T) { 15 cmd := &RequestPermissionsCommand{} 16 17 // Missing DApp fields 18 request, err := ConstructRPCRequest("wallet_revokePermissions", []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 TestFailToRevokePermissionsForUnpermittedDApp(t *testing.T) { 27 db, close := SetupTestDB(t) 28 defer close() 29 30 cmd := &RevokePermissionsCommand{Db: db} 31 32 request, err := ConstructRPCRequest("wallet_revokePermissions", []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 TestRevokePermissionsSucceeded(t *testing.T) { 41 db, close := SetupTestDB(t) 42 defer close() 43 44 cmd := &RevokePermissionsCommand{Db: db} 45 46 sharedAccount := types.BytesToAddress(types.FromHex("0x6d0aa2a774b74bb1d36f97700315adf962c69fcg")) 47 dAppPermissionRevoked := false 48 49 signal.SetMobileSignalHandler(signal.MobileSignalHandler(func(s []byte) { 50 var evt EventType 51 err := json.Unmarshal(s, &evt) 52 assert.NoError(t, err) 53 54 switch evt.Type { 55 case signal.EventConnectorDAppPermissionRevoked: 56 dAppPermissionRevoked = true 57 } 58 })) 59 t.Cleanup(signal.ResetMobileSignalHandler) 60 61 err := PersistDAppData(db, testDAppData, sharedAccount, 0x123) 62 assert.NoError(t, err) 63 64 request, err := ConstructRPCRequest("wallet_revokePermissions", []interface{}{}, &testDAppData) 65 assert.NoError(t, err) 66 67 result, err := cmd.Execute(request) 68 assert.NoError(t, err) 69 assert.Empty(t, result) 70 71 dApp, err := persistence.SelectDAppByUrl(db, testDAppData.URL) 72 assert.NoError(t, err) 73 assert.Nil(t, dApp) 74 75 assert.True(t, dAppPermissionRevoked) 76 }