status-go/protocol/node_config_persistence_tes...

95 lines
2.5 KiB
Go

package protocol
import (
"database/sql"
"testing"
"github.com/status-im/status-go/params"
"github.com/status-im/status-go/nodecfg"
"github.com/stretchr/testify/suite"
)
func TestNodeConfigPersistence(t *testing.T) {
suite.Run(t, new(NodeConfigPersistenceTestSuite))
}
type NodeConfigPersistenceTestSuite struct {
suite.Suite
db *sql.DB
config *params.NodeConfig
}
const (
testWakuNodeEnrtree = "enrtree://AL65EKLJAUXKKPG43HVTML5EFFWEZ7L4LOKTLZCLJASG4DSESQZEC@prod.status.nodes.status.im"
testWakuNodeMultiaddr = "/ip4/127.0.0.1/tcp/34012"
)
func (s *NodeConfigPersistenceTestSuite) SetupTest() {
db, err := openTestDB()
s.Require().NoError(err)
s.db = db
s.config, err = nodecfg.GetNodeConfigFromDB(s.db)
s.Require().NoError(err)
// write value to the db, otherwise log_config table won't be created
err = nodecfg.SaveNodeConfig(s.db, s.config)
s.Require().NoError(err)
}
func (s *NodeConfigPersistenceTestSuite) Test_SaveNewWakuNode() {
// GIVEN
wakuNodesBeforeChanges := s.config.ClusterConfig.WakuNodes
// WHEN
err := nodecfg.SaveNewWakuNode(s.db, testWakuNodeEnrtree)
s.Require().NoError(err)
err = nodecfg.SaveNewWakuNode(s.db, testWakuNodeMultiaddr)
s.Require().NoError(err)
// THEN
dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
s.Require().NoError(err)
s.Require().Len(dbNodeConfig.ClusterConfig.WakuNodes, len(wakuNodesBeforeChanges)+2)
s.Require().Contains(dbNodeConfig.ClusterConfig.WakuNodes, testWakuNodeEnrtree)
s.Require().Contains(dbNodeConfig.ClusterConfig.WakuNodes, testWakuNodeMultiaddr)
}
func (s *NodeConfigPersistenceTestSuite) Test_SaveMaxLogBackups() {
// GIVEN
maxLogBackupsBeforeChanges := s.config.LogMaxBackups
// WHEN
err := nodecfg.SetMaxLogBackups(s.db, uint(maxLogBackupsBeforeChanges+10))
s.Require().NoError(err)
// THEN
dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
s.Require().NoError(err)
s.Require().Equal(maxLogBackupsBeforeChanges+10, dbNodeConfig.LogMaxBackups)
}
func (s *NodeConfigPersistenceTestSuite) Test_SetLogLevelError() {
// WHEN
err := nodecfg.SetLogLevel(s.db, "ERROR")
s.Require().NoError(err)
// THEN
dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
s.Require().NoError(err)
s.Require().Equal("ERROR", dbNodeConfig.LogLevel)
}
func (s *NodeConfigPersistenceTestSuite) Test_SetLogLevelDebug() {
// WHEN
err := nodecfg.SetLogLevel(s.db, "DEBUG")
s.Require().NoError(err)
// THEN
dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
s.Require().NoError(err)
s.Require().Equal("DEBUG", dbNodeConfig.LogLevel)
}