github.com/stakater/IngressMonitorController@v1.0.103/pkg/monitors/statuscake/statuscake-monitor_test.go (about) 1 package statuscake 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/stakater/IngressMonitorController/pkg/config" 8 "github.com/stakater/IngressMonitorController/pkg/models" 9 "github.com/stakater/IngressMonitorController/pkg/util" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestAddMonitorWithCorrectValues(t *testing.T) { 14 config := config.GetControllerConfig() 15 16 service := StatusCakeMonitorService{} 17 provider := util.GetProviderWithName(config, "StatusCake") 18 if provider == nil { 19 panic("Failed to find provider") 20 } 21 service.Setup(*provider) 22 23 m := models.Monitor{Name: "google-test", URL: "https://google1.com"} 24 service.Add(m) 25 26 mRes, err := service.GetByName("google-test") 27 28 if err != nil { 29 t.Error("Error: " + err.Error()) 30 } 31 if mRes.Name != m.Name || mRes.URL != m.URL { 32 t.Error("URL and name should be the same") 33 } 34 service.Remove(*mRes) 35 36 monitor, err := service.GetByName(mRes.Name) 37 38 if monitor != nil { 39 t.Error("Monitor should've been deleted ", monitor, err) 40 } 41 } 42 43 func TestUpdateMonitorWithCorrectValues(t *testing.T) { 44 config := config.GetControllerConfig() 45 46 service := StatusCakeMonitorService{} 47 48 provider := util.GetProviderWithName(config, "StatusCake") 49 if provider == nil { 50 panic("Failed to find provider") 51 } 52 service.Setup(*provider) 53 54 m := models.Monitor{Name: "google-test", URL: "https://google.com"} 55 service.Add(m) 56 57 mRes, err := service.GetByName("google-test") 58 59 if err != nil { 60 t.Error("Error: " + err.Error()) 61 } 62 if mRes.Name != m.Name || mRes.URL != m.URL { 63 t.Error("URL and name should be the same") 64 } 65 66 mRes.URL = "https://facebook.com" 67 68 service.Update(*mRes) 69 70 mRes, err = service.GetByName("google-test") 71 72 if err != nil { 73 t.Error("Error: " + err.Error()) 74 } 75 if mRes.URL != "https://facebook.com" { 76 t.Error("URL and name should be the same") 77 } 78 79 service.Remove(*mRes) 80 81 monitor, err := service.GetByName(mRes.Name) 82 83 if monitor != nil { 84 t.Error("Monitor should've been deleted ", monitor, err) 85 } 86 } 87 88 func TestBuildUpsertFormAnnotations(t *testing.T) { 89 m := models.Monitor{Name: "google-test", URL: "https://google.com"} 90 m.Annotations = map[string]string{ 91 "statuscake.monitor.stakater.com/check-rate": "60", 92 "statuscake.monitor.stakater.com/test-type": "TCP", 93 "statuscake.monitor.stakater.com/paused": "true", 94 "statuscake.monitor.stakater.com/ping-url": "", 95 "statuscake.monitor.stakater.com/follow-redirect": "true", 96 "statuscake.monitor.stakater.com/port": "7070", 97 "statuscake.monitor.stakater.com/trigger-rate": "1", 98 "statuscake.monitor.stakater.com/contact-group": "123456,654321", 99 "statuscake.monitor.stakater.com/basic-auth-user": "testuser", 100 "statuscake.monitor.stakater.com/node-locations": "", 101 "statuscake.monitor.stakater.com/status-codes": "500,501,502,503,504,505", 102 "statuscake.monitor.stakater.com/confirmation": "2", 103 "statuscake.monitor.stakater.com/enable-ssl-alert": "true", 104 "statuscake.monitor.stakater.com/test-tags": "test,testrun,uptime", 105 "statuscake.monitor.stakater.com/real-browser": "true", 106 } 107 108 oldEnv := os.Getenv("testuser") 109 os.Setenv("testuser", "testpass") 110 defer os.Setenv("testuser", oldEnv) 111 112 vals := buildUpsertForm(m, "") 113 assert.Equal(t, "testuser", vals.Get("BasicUser")) 114 assert.Equal(t, "testpass", vals.Get("BasicPass")) 115 assert.Equal(t, "60", vals.Get("CheckRate")) 116 assert.Equal(t, "2", vals.Get("Confirmation")) 117 assert.Equal(t, "123456,654321", vals.Get("ContactGroup")) 118 assert.Equal(t, "1", vals.Get("EnableSSLAlert")) 119 assert.Equal(t, "1", vals.Get("FollowRedirect")) 120 assert.Equal(t, "", vals.Get("NodeLocations")) 121 assert.Equal(t, "1", vals.Get("Paused")) 122 assert.Equal(t, "", vals.Get("PingURL")) 123 assert.Equal(t, "7070", vals.Get("Port")) 124 assert.Equal(t, "1", vals.Get("RealBrowser")) 125 assert.Equal(t, "500,501,502,503,504,505", vals.Get("StatusCodes")) 126 assert.Equal(t, "test,testrun,uptime", vals.Get("TestTags")) 127 assert.Equal(t, "TCP", vals.Get("TestType")) 128 assert.Equal(t, "1", vals.Get("TriggerRate")) 129 }