github.com/status-im/status-go@v1.1.0/protocol/messenger_walletconnect_test.go (about)

     1  package protocol
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/suite"
     7  
     8  	"github.com/status-im/status-go/protocol/requests"
     9  )
    10  
    11  func TestWalletConnectSessionsSuite(t *testing.T) {
    12  	suite.Run(t, new(WalletConnectSessionsSuite))
    13  }
    14  
    15  type WalletConnectSessionsSuite struct {
    16  	MessengerBaseTestSuite
    17  }
    18  
    19  func (s *WalletConnectSessionsSuite) TestCreateReadAndDeleteSessions() {
    20  	peerID1 := "0643983b-0000-2222-1111-b05fdac338zd1"
    21  	peerID2 := "0643983b-0000-2222-1111-b05fdac338zd2"
    22  
    23  	dappName1 := "b"
    24  	dappName2 := "a"
    25  	url := "some-url"
    26  
    27  	sessionInfo := "some dummy text that looks like a json"
    28  
    29  	wcSession1 := &requests.AddWalletConnectSession{
    30  		PeerID:   peerID1,
    31  		DAppName: dappName1,
    32  		DAppURL:  url,
    33  		Info:     sessionInfo,
    34  	}
    35  
    36  	wcSession2 := &requests.AddWalletConnectSession{
    37  		PeerID:   peerID2,
    38  		DAppName: dappName2,
    39  		DAppURL:  url,
    40  		Info:     sessionInfo,
    41  	}
    42  
    43  	err := s.m.AddWalletConnectSession(wcSession1)
    44  	s.Require().NoError(err)
    45  
    46  	err = s.m.AddWalletConnectSession(wcSession2)
    47  	s.Require().NoError(err)
    48  
    49  	response, err := s.m.GetWalletConnectSession()
    50  	s.Require().NoError(err)
    51  	s.Require().NotNil(response)
    52  	s.Require().Len(response, 2)
    53  	s.Require().Equal(response[0].PeerID, peerID2)
    54  	s.Require().Equal(response[0].DAppName, dappName2)
    55  	s.Require().Equal(response[0].DAppURL, url)
    56  	s.Require().Equal(response[0].Info, sessionInfo)
    57  	s.Require().Equal(response[1].PeerID, peerID1)
    58  	s.Require().Equal(response[1].DAppName, dappName1)
    59  	s.Require().Equal(response[1].DAppURL, url)
    60  	s.Require().Equal(response[1].Info, sessionInfo)
    61  
    62  	errWhileDeletion := s.m.DestroyWalletConnectSession(peerID1)
    63  	s.Require().NoError(errWhileDeletion)
    64  
    65  	shouldNotBeEmpty, errWhileFetchingAgain := s.m.GetWalletConnectSession()
    66  	s.Require().NoError(errWhileFetchingAgain)
    67  	s.Require().NotNil(shouldNotBeEmpty)
    68  	s.Require().Len(shouldNotBeEmpty, 1)
    69  	s.Require().Equal(shouldNotBeEmpty[0].PeerID, peerID2)
    70  }