| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | package proimport (	"testing"	"github.com/gravitl/netmaker/database"	"github.com/gravitl/netmaker/models"	"github.com/gravitl/netmaker/models/promodels"	"github.com/stretchr/testify/assert")func TestNetworkUserLogic(t *testing.T) {	database.InitializeDatabase()	networkUser := promodels.NetworkUser{		ID: "helloworld",	}	network := models.Network{		NetID:        "skynet",		AddressRange: "192.168.0.0/24",	}	nodes := []models.LegacyNode{		models.LegacyNode{ID: "coolnode"},	}	clients := []models.ExtClient{		models.ExtClient{			ClientID: "coolclient",		},	}	AddProNetDefaults(&network)	t.Run("Net Users initialized successfully", func(t *testing.T) {		err := InitializeNetworkUsers(network.NetID)		assert.Nil(t, err)	})	t.Run("Error when no network users", func(t *testing.T) {		user, err := GetNetworkUser(network.NetID, networkUser.ID)		assert.Nil(t, user)		assert.NotNil(t, err)	})	t.Run("Successful net user create", func(t *testing.T) {		DeleteNetworkUser(network.NetID, string(networkUser.ID))		err := CreateNetworkUser(&network, &networkUser)		assert.Nil(t, err)		user, err := GetNetworkUser(network.NetID, networkUser.ID)		assert.NotNil(t, user)		assert.Nil(t, err)		assert.Equal(t, 0, user.AccessLevel)		assert.Equal(t, 0, user.ClientLimit)	})	t.Run("Successful net user update", func(t *testing.T) {		networkUser.AccessLevel = 0		networkUser.ClientLimit = 1		err := UpdateNetworkUser(network.NetID, &networkUser)		assert.Nil(t, err)		user, err := GetNetworkUser(network.NetID, networkUser.ID)		assert.NotNil(t, user)		assert.Nil(t, err)		assert.Equal(t, 0, user.AccessLevel)		assert.Equal(t, 1, user.ClientLimit)	})	t.Run("Successful net user node isallowed", func(t *testing.T) {		networkUser.Nodes = append(networkUser.Nodes, "coolnode")		err := UpdateNetworkUser(network.NetID, &networkUser)		assert.Nil(t, err)		isUserNodeAllowed := IsUserNodeAllowed(nodes[:], network.NetID, string(networkUser.ID), "coolnode")		assert.True(t, isUserNodeAllowed)	})	t.Run("Successful net user node not allowed", func(t *testing.T) {		isUserNodeAllowed := IsUserNodeAllowed(nodes[:], network.NetID, string(networkUser.ID), "notanode")		assert.False(t, isUserNodeAllowed)	})	t.Run("Successful net user client isallowed", func(t *testing.T) {		networkUser.Clients = append(networkUser.Clients, "coolclient")		err := UpdateNetworkUser(network.NetID, &networkUser)		assert.Nil(t, err)		isUserClientAllowed := IsUserClientAllowed(clients[:], network.NetID, string(networkUser.ID), "coolclient")		assert.True(t, isUserClientAllowed)	})	t.Run("Successful net user client not allowed", func(t *testing.T) {		isUserClientAllowed := IsUserClientAllowed(clients[:], network.NetID, string(networkUser.ID), "notaclient")		assert.False(t, isUserClientAllowed)	})	t.Run("Successful net user delete", func(t *testing.T) {		err := DeleteNetworkUser(network.NetID, string(networkUser.ID))		assert.Nil(t, err)		user, err := GetNetworkUser(network.NetID, networkUser.ID)		assert.Nil(t, user)		assert.NotNil(t, err)	})}
 |