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

     1  package protocol
     2  
     3  import (
     4  	"database/sql"
     5  	"testing"
     6  
     7  	"github.com/status-im/status-go/params"
     8  
     9  	"github.com/status-im/status-go/nodecfg"
    10  
    11  	"github.com/stretchr/testify/suite"
    12  )
    13  
    14  func TestNodeConfigPersistence(t *testing.T) {
    15  	suite.Run(t, new(NodeConfigPersistenceTestSuite))
    16  }
    17  
    18  type NodeConfigPersistenceTestSuite struct {
    19  	suite.Suite
    20  	db     *sql.DB
    21  	config *params.NodeConfig
    22  }
    23  
    24  const (
    25  	testWakuNodeEnrtree   = "enrtree://AL65EKLJAUXKKPG43HVTML5EFFWEZ7L4LOKTLZCLJASG4DSESQZEC@prod.status.nodes.status.im"
    26  	testWakuNodeMultiaddr = "/ip4/127.0.0.1/tcp/34012"
    27  )
    28  
    29  func (s *NodeConfigPersistenceTestSuite) SetupTest() {
    30  	db, err := openTestDB()
    31  	s.Require().NoError(err)
    32  	s.db = db
    33  
    34  	s.config, err = nodecfg.GetNodeConfigFromDB(s.db)
    35  	s.Require().NoError(err)
    36  
    37  	// write value to the db, otherwise log_config table won't be created
    38  	err = nodecfg.SaveNodeConfig(s.db, s.config)
    39  	s.Require().NoError(err)
    40  }
    41  
    42  func (s *NodeConfigPersistenceTestSuite) Test_SaveNewWakuNode() {
    43  	// GIVEN
    44  	wakuNodesBeforeChanges := s.config.ClusterConfig.WakuNodes
    45  
    46  	// WHEN
    47  	err := nodecfg.SaveNewWakuNode(s.db, testWakuNodeEnrtree)
    48  	s.Require().NoError(err)
    49  	err = nodecfg.SaveNewWakuNode(s.db, testWakuNodeMultiaddr)
    50  	s.Require().NoError(err)
    51  
    52  	// THEN
    53  	dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
    54  	s.Require().NoError(err)
    55  	s.Require().Len(dbNodeConfig.ClusterConfig.WakuNodes, len(wakuNodesBeforeChanges)+2)
    56  	s.Require().Contains(dbNodeConfig.ClusterConfig.WakuNodes, testWakuNodeEnrtree)
    57  	s.Require().Contains(dbNodeConfig.ClusterConfig.WakuNodes, testWakuNodeMultiaddr)
    58  }
    59  
    60  func (s *NodeConfigPersistenceTestSuite) Test_SaveMaxLogBackups() {
    61  	// GIVEN
    62  	maxLogBackupsBeforeChanges := s.config.LogMaxBackups
    63  
    64  	// WHEN
    65  	err := nodecfg.SetMaxLogBackups(s.db, uint(maxLogBackupsBeforeChanges+10))
    66  	s.Require().NoError(err)
    67  
    68  	// THEN
    69  	dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
    70  	s.Require().NoError(err)
    71  	s.Require().Equal(maxLogBackupsBeforeChanges+10, dbNodeConfig.LogMaxBackups)
    72  }
    73  
    74  func (s *NodeConfigPersistenceTestSuite) Test_SetLogLevelError() {
    75  	// WHEN
    76  	err := nodecfg.SetLogLevel(s.db, "ERROR")
    77  	s.Require().NoError(err)
    78  
    79  	// THEN
    80  	dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
    81  	s.Require().NoError(err)
    82  	s.Require().Equal("ERROR", dbNodeConfig.LogLevel)
    83  }
    84  
    85  func (s *NodeConfigPersistenceTestSuite) Test_SetLogLevelDebug() {
    86  	// WHEN
    87  	err := nodecfg.SetLogLevel(s.db, "DEBUG")
    88  	s.Require().NoError(err)
    89  
    90  	// THEN
    91  	dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
    92  	s.Require().NoError(err)
    93  	s.Require().Equal("DEBUG", dbNodeConfig.LogLevel)
    94  }