status-im/status-go

View on GitHub
protocol/node_config_persistence_test.go

Summary

Maintainability
A
0 mins
Test Coverage
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)
}