netmaker/functions/helpers_test.go
2025-06-06 15:42:30 +05:30

100 lines
2.4 KiB
Go

package functions
import (
"context"
"encoding/json"
"github.com/gravitl/netmaker/db"
"github.com/gravitl/netmaker/schema"
"os"
"testing"
"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"
)
var (
testNetwork = &models.Network{
NetID: "not-a-network",
}
testExternalClient = &models.ExtClient{
ClientID: "testExtClient",
}
)
func TestMain(m *testing.M) {
db.InitializeDB(schema.ListModels()...)
defer db.CloseDB()
database.InitializeDatabase()
defer database.CloseDB()
logic.CreateSuperAdmin(&models.User{
UserName: "superadmin",
Password: "password",
PlatformRoleID: models.SuperAdminRole,
})
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)
}
}()
os.Exit(m.Run())
}
func TestNetworkExists(t *testing.T) {
database.DeleteRecord(database.NETWORKS_TABLE_NAME, testNetwork.NetID)
exists, err := logic.NetworkExists(testNetwork.NetID)
assert.NotNil(t, err)
assert.False(t, exists)
err = logic.SaveNetwork(testNetwork)
assert.Nil(t, err)
exists, err = logic.NetworkExists(testNetwork.NetID)
assert.Nil(t, err)
assert.True(t, exists)
err = database.DeleteRecord(database.NETWORKS_TABLE_NAME, testNetwork.NetID)
assert.Nil(t, err)
}
func TestGetAllExtClients(t *testing.T) {
err := database.DeleteRecord(database.EXT_CLIENT_TABLE_NAME, testExternalClient.ClientID)
assert.Nil(t, err)
extClients, err := GetAllExtClients()
if err == nil {
t.Fatalf("expected error, received nil")
}
if len(extClients) >= 1 {
t.Fatalf("expected no external clients, received %d", len(extClients))
}
extClient, err := json.Marshal(testExternalClient)
if err != nil {
t.Fatal(err)
}
err = database.Insert(testExternalClient.ClientID, string(extClient), database.EXT_CLIENT_TABLE_NAME)
if err != nil {
t.Fatal(err)
}
extClients, err = GetAllExtClients()
if err != nil {
t.Fatalf("expected nil, received: %s", err)
}
if len(extClients) < 1 {
t.Fatalf("expected 1 external client, received %d", len(extClients))
}
err = database.DeleteRecord(database.EXT_CLIENT_TABLE_NAME, testExternalClient.ClientID)
if err != nil {
t.Fatalf("failed removing extclient: %s", err)
}
}