networkuser_test.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package pro
  2. import (
  3. "testing"
  4. "github.com/google/uuid"
  5. "github.com/gravitl/netmaker/models"
  6. "github.com/gravitl/netmaker/models/promodels"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestNetworkUserLogic(t *testing.T) {
  10. initialize()
  11. networkUser := promodels.NetworkUser{
  12. ID: "helloworld",
  13. }
  14. network := models.Network{
  15. NetID: "skynet",
  16. AddressRange: "192.168.0.0/24",
  17. }
  18. tmpCNode := models.CommonNode{
  19. ID: uuid.New(),
  20. }
  21. tempNode := models.Node{}
  22. tempNode.CommonNode = tmpCNode
  23. nodes := []models.Node{
  24. tempNode,
  25. }
  26. clients := []models.ExtClient{
  27. models.ExtClient{
  28. ClientID: "coolclient",
  29. },
  30. }
  31. AddProNetDefaults(&network)
  32. t.Run("Net Users initialized successfully", func(t *testing.T) {
  33. err := InitializeNetworkUsers(network.NetID)
  34. assert.Nil(t, err)
  35. })
  36. t.Run("Error when no network users", func(t *testing.T) {
  37. user, err := GetNetworkUser(network.NetID, networkUser.ID)
  38. assert.Nil(t, user)
  39. assert.NotNil(t, err)
  40. })
  41. t.Run("Successful net user create", func(t *testing.T) {
  42. DeleteNetworkUser(network.NetID, string(networkUser.ID))
  43. err := CreateNetworkUser(&network, &networkUser)
  44. assert.Nil(t, err)
  45. user, err := GetNetworkUser(network.NetID, networkUser.ID)
  46. assert.NotNil(t, user)
  47. assert.Nil(t, err)
  48. assert.Equal(t, 0, user.AccessLevel)
  49. assert.Equal(t, 0, user.ClientLimit)
  50. })
  51. t.Run("Successful net user update", func(t *testing.T) {
  52. networkUser.AccessLevel = 0
  53. networkUser.ClientLimit = 1
  54. err := UpdateNetworkUser(network.NetID, &networkUser)
  55. assert.Nil(t, err)
  56. user, err := GetNetworkUser(network.NetID, networkUser.ID)
  57. assert.NotNil(t, user)
  58. assert.Nil(t, err)
  59. assert.Equal(t, 0, user.AccessLevel)
  60. assert.Equal(t, 1, user.ClientLimit)
  61. })
  62. t.Run("Successful net user node isallowed", func(t *testing.T) {
  63. networkUser.Nodes = append(networkUser.Nodes, nodes[0].ID.String())
  64. err := UpdateNetworkUser(network.NetID, &networkUser)
  65. assert.Nil(t, err)
  66. isUserNodeAllowed := IsUserNodeAllowed(nodes[:], network.NetID, string(networkUser.ID), nodes[0].ID.String())
  67. assert.True(t, isUserNodeAllowed)
  68. })
  69. t.Run("Successful net user node not allowed", func(t *testing.T) {
  70. isUserNodeAllowed := IsUserNodeAllowed(nodes[:], network.NetID, string(networkUser.ID), "notanode")
  71. assert.False(t, isUserNodeAllowed)
  72. })
  73. t.Run("Successful net user client isallowed", func(t *testing.T) {
  74. networkUser.Clients = append(networkUser.Clients, "coolclient")
  75. err := UpdateNetworkUser(network.NetID, &networkUser)
  76. assert.Nil(t, err)
  77. isUserClientAllowed := IsUserClientAllowed(clients[:], network.NetID, string(networkUser.ID), "coolclient")
  78. assert.True(t, isUserClientAllowed)
  79. })
  80. t.Run("Successful net user client not allowed", func(t *testing.T) {
  81. isUserClientAllowed := IsUserClientAllowed(clients[:], network.NetID, string(networkUser.ID), "notaclient")
  82. assert.False(t, isUserClientAllowed)
  83. })
  84. t.Run("Successful net user delete", func(t *testing.T) {
  85. err := DeleteNetworkUser(network.NetID, string(networkUser.ID))
  86. assert.Nil(t, err)
  87. user, err := GetNetworkUser(network.NetID, networkUser.ID)
  88. assert.Nil(t, user)
  89. assert.NotNil(t, err)
  90. })
  91. }