helpers_test.go 2.3 KB

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