helpers_test.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package functions
  2. import (
  3. "context"
  4. "encoding/json"
  5. "os"
  6. "testing"
  7. "github.com/gravitl/netmaker/database"
  8. "github.com/gravitl/netmaker/logger"
  9. "github.com/gravitl/netmaker/logic"
  10. "github.com/gravitl/netmaker/models"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. var (
  14. testNetwork = &models.Network{
  15. NetID: "not-a-network",
  16. }
  17. testExternalClient = &models.ExtClient{
  18. ClientID: "testExtClient",
  19. Description: "ext client for testing",
  20. }
  21. )
  22. func TestMain(m *testing.M) {
  23. database.InitializeDatabase()
  24. defer database.CloseDB()
  25. logic.CreateAdmin(&models.User{
  26. UserName: "admin",
  27. Password: "password",
  28. IsAdmin: true,
  29. Networks: []string{},
  30. Groups: []string{},
  31. })
  32. peerUpdate := make(chan *models.Node)
  33. go logic.ManageZombies(context.Background(), peerUpdate)
  34. go func() {
  35. for update := range peerUpdate {
  36. //do nothing
  37. logger.Log(3, "received node update", update.Action)
  38. }
  39. }()
  40. os.Exit(m.Run())
  41. }
  42. func TestNetworkExists(t *testing.T) {
  43. database.DeleteRecord(database.NETWORKS_TABLE_NAME, testNetwork.NetID)
  44. exists, err := logic.NetworkExists(testNetwork.NetID)
  45. assert.NotNil(t, err)
  46. assert.False(t, exists)
  47. err = logic.SaveNetwork(testNetwork)
  48. assert.Nil(t, err)
  49. exists, err = logic.NetworkExists(testNetwork.NetID)
  50. assert.Nil(t, err)
  51. assert.True(t, exists)
  52. err = database.DeleteRecord(database.NETWORKS_TABLE_NAME, testNetwork.NetID)
  53. assert.Nil(t, err)
  54. }
  55. func TestGetAllExtClients(t *testing.T) {
  56. err := database.DeleteRecord(database.EXT_CLIENT_TABLE_NAME, testExternalClient.ClientID)
  57. assert.Nil(t, err)
  58. extClients, err := GetAllExtClients()
  59. if err == nil {
  60. t.Fatalf("expected error, received nil")
  61. }
  62. if len(extClients) >= 1 {
  63. t.Fatalf("expected no external clients, received %d", len(extClients))
  64. }
  65. extClient, err := json.Marshal(testExternalClient)
  66. if err != nil {
  67. t.Fatal(err)
  68. }
  69. err = database.Insert(testExternalClient.ClientID, string(extClient), database.EXT_CLIENT_TABLE_NAME)
  70. if err != nil {
  71. t.Fatal(err)
  72. }
  73. extClients, err = GetAllExtClients()
  74. if err != nil {
  75. t.Fatalf("expected nil, received: %s", err)
  76. }
  77. if len(extClients) < 1 {
  78. t.Fatalf("expected 1 external client, received %d", len(extClients))
  79. }
  80. err = database.DeleteRecord(database.EXT_CLIENT_TABLE_NAME, testExternalClient.ClientID)
  81. if err != nil {
  82. t.Fatalf("failed removing extclient: %s", err)
  83. }
  84. }