diff --git a/controllers/dns_test.go b/controllers/dns_test.go index 245c126a..401aeb74 100644 --- a/controllers/dns_test.go +++ b/controllers/dns_test.go @@ -15,7 +15,6 @@ import ( var dnsHost models.Host func TestGetAllDNS(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() createNet() @@ -46,7 +45,6 @@ func TestGetAllDNS(t *testing.T) { } func TestGetNodeDNS(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() createNet() @@ -93,7 +91,6 @@ func TestGetNodeDNS(t *testing.T) { }) } func TestGetCustomDNS(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() t.Run("NoNetworks", func(t *testing.T) { @@ -132,7 +129,6 @@ func TestGetCustomDNS(t *testing.T) { } func TestGetDNSEntryNum(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() createNet() @@ -151,7 +147,6 @@ func TestGetDNSEntryNum(t *testing.T) { }) } func TestGetDNS(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() createNet() @@ -195,7 +190,6 @@ func TestGetDNS(t *testing.T) { } func TestCreateDNS(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() createNet() @@ -206,7 +200,6 @@ func TestCreateDNS(t *testing.T) { } func TestSetDNS(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() t.Run("NoNetworks", func(t *testing.T) { @@ -254,7 +247,6 @@ func TestSetDNS(t *testing.T) { } func TestGetDNSEntry(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() createNet() @@ -284,7 +276,6 @@ func TestGetDNSEntry(t *testing.T) { } func TestDeleteDNS(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() createNet() @@ -306,7 +297,6 @@ func TestDeleteDNS(t *testing.T) { } func TestValidateDNSUpdate(t *testing.T) { - initialize() deleteAllDNS(t) deleteAllNetworks() createNet() @@ -368,7 +358,6 @@ func TestValidateDNSUpdate(t *testing.T) { } func TestValidateDNSCreate(t *testing.T) { - initialize() _ = logic.DeleteDNS("mynode", "skynet") t.Run("NoNetwork", func(t *testing.T) { entry := models.DNSEntry{"10.0.0.2", "", "myhost", "badnet"} diff --git a/controllers/network_test.go b/controllers/network_test.go index 3a61c631..0d19c7df 100644 --- a/controllers/network_test.go +++ b/controllers/network_test.go @@ -7,6 +7,7 @@ import ( "github.com/google/uuid" "github.com/gravitl/netmaker/database" + "github.com/gravitl/netmaker/logger" "github.com/gravitl/netmaker/logic" "github.com/gravitl/netmaker/models" "github.com/stretchr/testify/assert" @@ -21,8 +22,27 @@ type NetworkValidationTestCase struct { var netHost models.Host +func TestMain(m *testing.M) { + database.InitializeDatabase() + defer database.CloseDB() + logic.CreateAdmin(&models.User{ + UserName: "admin", + Password: "password", + IsAdmin: true, + Networks: []string{}, + Groups: []string{}, + }) + peerUpdate := make(chan *models.Node) + go logic.ManageZombies(context.Background(), peerUpdate) + go func() { + for update := range peerUpdate { + //do nothing + logger.Log(3, "received node update", update.Action) + } + }() +} + func TestCreateNetwork(t *testing.T) { - initialize() deleteAllNetworks() var network models.Network @@ -35,7 +55,6 @@ func TestCreateNetwork(t *testing.T) { assert.Nil(t, err) } func TestGetNetwork(t *testing.T) { - initialize() createNet() t.Run("GetExistingNetwork", func(t *testing.T) { @@ -51,7 +70,6 @@ func TestGetNetwork(t *testing.T) { } func TestDeleteNetwork(t *testing.T) { - initialize() createNet() //create nodes t.Run("NetworkwithNodes", func(t *testing.T) { @@ -67,7 +85,6 @@ func TestDeleteNetwork(t *testing.T) { } func TestCreateKey(t *testing.T) { - initialize() createNet() keys, _ := logic.GetKeys("skynet") for _, key := range keys { @@ -139,7 +156,6 @@ func TestCreateKey(t *testing.T) { } func TestGetKeys(t *testing.T) { - initialize() deleteAllNetworks() createNet() network, err := logic.GetNetwork("skynet") @@ -162,7 +178,6 @@ func TestGetKeys(t *testing.T) { }) } func TestDeleteKey(t *testing.T) { - initialize() createNet() network, err := logic.GetNetwork("skynet") assert.Nil(t, err) @@ -184,7 +199,6 @@ func TestDeleteKey(t *testing.T) { func TestSecurityCheck(t *testing.T) { //these seem to work but not sure it the tests are really testing the functionality - initialize() os.Setenv("MASTER_KEY", "secretkey") t.Run("NoNetwork", func(t *testing.T) { networks, username, err := logic.UserPermissions(false, "", "Bearer secretkey") @@ -215,7 +229,6 @@ func TestValidateNetwork(t *testing.T) { //t.Skip() //This functions is not called by anyone //it panics as validation function 'display_name_valid' is not defined - initialize() //yes := true //no := false //deleteNet(t) @@ -292,7 +305,6 @@ func TestValidateNetwork(t *testing.T) { func TestIpv6Network(t *testing.T) { //these seem to work but not sure it the tests are really testing the functionality - initialize() os.Setenv("MASTER_KEY", "secretkey") deleteAllNetworks() createNet() @@ -319,22 +331,6 @@ func deleteAllNetworks() { } } -func initialize() { - database.InitializeDatabase() - createAdminUser() - go logic.ManageZombies(context.Background()) -} - -func createAdminUser() { - logic.CreateAdmin(&models.User{ - UserName: "admin", - Password: "password", - IsAdmin: true, - Networks: []string{}, - Groups: []string{}, - }) -} - func createNet() { var network models.Network network.NetID = "skynet" diff --git a/controllers/node_test.go b/controllers/node_test.go index fcaf572e..bb1e5f00 100644 --- a/controllers/node_test.go +++ b/controllers/node_test.go @@ -21,7 +21,6 @@ func TestCreateEgressGateway(t *testing.T) { var gateway models.EgressGatewayRequest gateway.Ranges = []string{"10.100.100.0/24"} gateway.NetID = "skynet" - initialize() deleteAllNetworks() createNet() t.Run("NoNodes", func(t *testing.T) { @@ -78,7 +77,6 @@ func TestCreateEgressGateway(t *testing.T) { } func TestDeleteEgressGateway(t *testing.T) { var gateway models.EgressGatewayRequest - initialize() deleteAllNetworks() createNet() testnode := createTestNode() @@ -110,7 +108,6 @@ func TestDeleteEgressGateway(t *testing.T) { } func TestGetNetworkNodes(t *testing.T) { - initialize() deleteAllNetworks() createNet() t.Run("BadNet", func(t *testing.T) { diff --git a/controllers/user_test.go b/controllers/user_test.go index 642a3b3f..4c7eb59b 100644 --- a/controllers/user_test.go +++ b/controllers/user_test.go @@ -17,7 +17,6 @@ func deleteAllUsers() { func TestHasAdmin(t *testing.T) { //delete all current users - initialize() users, _ := logic.GetUsers() for _, user := range users { success, err := logic.DeleteUser(user.UserName) @@ -56,7 +55,6 @@ func TestHasAdmin(t *testing.T) { } func TestCreateUser(t *testing.T) { - initialize() deleteAllUsers() user := models.User{"admin", "password", nil, true, nil} t.Run("NoUser", func(t *testing.T) { @@ -71,7 +69,6 @@ func TestCreateUser(t *testing.T) { } func TestCreateAdmin(t *testing.T) { - initialize() deleteAllUsers() var user models.User t.Run("NoAdmin", func(t *testing.T) { @@ -89,7 +86,6 @@ func TestCreateAdmin(t *testing.T) { } func TestDeleteUser(t *testing.T) { - initialize() deleteAllUsers() t.Run("NonExistent User", func(t *testing.T) { deleted, err := logic.DeleteUser("admin") @@ -106,7 +102,6 @@ func TestDeleteUser(t *testing.T) { } func TestValidateUser(t *testing.T) { - initialize() var user models.User t.Run("Valid Create", func(t *testing.T) { user.UserName = "admin" @@ -154,7 +149,6 @@ func TestValidateUser(t *testing.T) { } func TestGetUser(t *testing.T) { - initialize() deleteAllUsers() t.Run("NonExistantUser", func(t *testing.T) { admin, err := logic.GetUser("admin") @@ -171,7 +165,6 @@ func TestGetUser(t *testing.T) { } func TestGetUsers(t *testing.T) { - initialize() deleteAllUsers() t.Run("NonExistantUser", func(t *testing.T) { admin, err := logic.GetUsers() @@ -202,7 +195,6 @@ func TestGetUsers(t *testing.T) { } func TestUpdateUser(t *testing.T) { - initialize() deleteAllUsers() user := models.User{"admin", "password", nil, true, nil} newuser := models.User{"hello", "world", []string{"wirecat, netmaker"}, true, []string{}} @@ -245,7 +237,6 @@ func TestUpdateUser(t *testing.T) { // } func TestVerifyAuthRequest(t *testing.T) { - initialize() deleteAllUsers() var authRequest models.UserAuthParams t.Run("EmptyUserName", func(t *testing.T) { diff --git a/functions/helpers_test.go b/functions/helpers_test.go index a5afc6c9..220ecaad 100644 --- a/functions/helpers_test.go +++ b/functions/helpers_test.go @@ -1,10 +1,12 @@ package functions import ( + "context" "encoding/json" "testing" "github.com/gravitl/netmaker/database" + "github.com/gravitl/netmaker/logger" "github.com/gravitl/netmaker/logic" "github.com/gravitl/netmaker/models" ) @@ -19,11 +21,27 @@ var ( } ) +func TestMain(m *testing.M) { + database.InitializeDatabase() + defer database.CloseDB() + logic.CreateAdmin(&models.User{ + UserName: "admin", + Password: "password", + IsAdmin: true, + Networks: []string{}, + Groups: []string{}, + }) + peerUpdate := make(chan *models.Node) + go logic.ManageZombies(context.Background(), peerUpdate) + go func() { + for update := range peerUpdate { + //do nothing + logger.Log(3, "received node update", update.Action) + } + }() +} + func TestNetworkExists(t *testing.T) { - err := initialize() - if err != nil { - t.Fatalf("error initilizing database: %s", err) - } database.DeleteRecord(database.NETWORKS_TABLE_NAME, testNetwork.NetID) defer database.CloseDB() exists, err := logic.NetworkExists(testNetwork.NetID) @@ -53,10 +71,6 @@ func TestNetworkExists(t *testing.T) { } func TestGetAllExtClients(t *testing.T) { - err := initialize() - if err != nil { - t.Fatalf("error initilizing database: %s", err) - } defer database.CloseDB() database.DeleteRecord(database.EXT_CLIENT_TABLE_NAME, testExternalClient.ClientID) diff --git a/logic/host_test.go b/logic/host_test.go index e142f634..fdde345e 100644 --- a/logic/host_test.go +++ b/logic/host_test.go @@ -1,16 +1,38 @@ package logic import ( + "context" "net" "testing" "github.com/google/uuid" + "github.com/gravitl/netmaker/database" + "github.com/gravitl/netmaker/logger" "github.com/gravitl/netmaker/models" "github.com/matryer/is" ) +func TestMain(m *testing.M) { + database.InitializeDatabase() + defer database.CloseDB() + CreateAdmin(&models.User{ + UserName: "admin", + Password: "password", + IsAdmin: true, + Networks: []string{}, + Groups: []string{}, + }) + peerUpdate := make(chan *models.Node) + go ManageZombies(context.Background(), peerUpdate) + go func() { + for update := range peerUpdate { + //do nothing + logger.Log(3, "received node update", update.Action) + } + }() +} + func TestCheckPorts(t *testing.T) { - initialize() h := models.Host{ ID: uuid.New(), EndpointIP: net.ParseIP("192.168.1.1"), diff --git a/logic/pro/networkuser_test.go b/logic/pro/networkuser_test.go index ff34c107..2568ae07 100644 --- a/logic/pro/networkuser_test.go +++ b/logic/pro/networkuser_test.go @@ -4,13 +4,18 @@ import ( "testing" "github.com/google/uuid" + "github.com/gravitl/netmaker/database" "github.com/gravitl/netmaker/models" "github.com/gravitl/netmaker/models/promodels" "github.com/stretchr/testify/assert" ) +func TestMain(m *testing.M) { + database.InitializeDatabase() + defer database.CloseDB() +} + func TestNetworkUserLogic(t *testing.T) { - initialize() networkUser := promodels.NetworkUser{ ID: "helloworld", } diff --git a/logic/pro/usergroups_test.go b/logic/pro/usergroups_test.go index c7094964..3ca32cef 100644 --- a/logic/pro/usergroups_test.go +++ b/logic/pro/usergroups_test.go @@ -8,7 +8,6 @@ import ( ) func TestUserGroupLogic(t *testing.T) { - initialize() t.Run("User Groups initialized successfully", func(t *testing.T) { err := InitializeGroups() diff --git a/logic/zombie.go b/logic/zombie.go index 4b147776..488bfaa5 100644 --- a/logic/zombie.go +++ b/logic/zombie.go @@ -80,6 +80,7 @@ func ManageZombies(ctx context.Context, peerUpdate chan *models.Node) { for { select { case <-ctx.Done(): + close(peerUpdate) return case id := <-newZombie: zombies = append(zombies, id)