github.com/status-im/status-go@v1.1.0/protocol/messenger_base_test.go (about) 1 package protocol 2 3 import ( 4 "crypto/ecdsa" 5 6 "github.com/stretchr/testify/suite" 7 8 "go.uber.org/zap" 9 10 gethbridge "github.com/status-im/status-go/eth-node/bridge/geth" 11 "github.com/status-im/status-go/eth-node/crypto" 12 "github.com/status-im/status-go/eth-node/types" 13 "github.com/status-im/status-go/multiaccounts/settings" 14 "github.com/status-im/status-go/params" 15 "github.com/status-im/status-go/protocol/tt" 16 "github.com/status-im/status-go/waku" 17 ) 18 19 const DefaultProfileDisplayName = "" 20 21 func (s *MessengerBaseTestSuite) SetupTest() { 22 s.logger = tt.MustCreateTestLogger() 23 24 config := waku.DefaultConfig 25 config.MinimumAcceptedPoW = 0 26 shh := waku.New(&config, s.logger) 27 s.shh = gethbridge.NewGethWakuWrapper(shh) 28 s.Require().NoError(shh.Start()) 29 30 s.m = s.newMessenger() 31 s.privateKey = s.m.identity 32 } 33 34 func (s *MessengerBaseTestSuite) TearDownTest() { 35 TearDownMessenger(&s.Suite, s.m) 36 _ = s.logger.Sync() 37 } 38 39 func (s *MessengerBaseTestSuite) newMessenger() *Messenger { 40 privateKey, err := crypto.GenerateKey() 41 s.Require().NoError(err) 42 43 messenger, err := newMessengerWithKey(s.shh, privateKey, s.logger, nil) 44 s.Require().NoError(err) 45 return messenger 46 } 47 48 type MessengerBaseTestSuite struct { 49 suite.Suite 50 m *Messenger // main instance of Messenger 51 privateKey *ecdsa.PrivateKey // private key for the main instance of Messenger 52 // If one wants to send messages between different instances of Messenger, 53 // a single waku service should be shared. 54 shh types.Waku 55 logger *zap.Logger 56 } 57 58 func newMessengerWithKey(shh types.Waku, privateKey *ecdsa.PrivateKey, logger *zap.Logger, extraOptions []Option) (*Messenger, error) { 59 options := []Option{ 60 WithAppSettings(settings.Settings{ 61 DisplayName: DefaultProfileDisplayName, 62 ProfilePicturesShowTo: 1, 63 ProfilePicturesVisibility: 1, 64 URLUnfurlingMode: settings.URLUnfurlingAlwaysAsk, 65 }, params.NodeConfig{}), 66 } 67 options = append(options, extraOptions...) 68 69 m, err := newTestMessenger(shh, testMessengerConfig{ 70 privateKey: privateKey, 71 logger: logger, 72 extraOptions: options, 73 }) 74 if err != nil { 75 return nil, err 76 } 77 78 m.EnableBackedupMessagesProcessing() 79 80 _, err = m.Start() 81 if err != nil { 82 return nil, err 83 } 84 85 return m, nil 86 }