diff --git a/internal/monitoring/monitoring_test.go b/internal/monitoring/monitoring_test.go index 2f2912a..275f812 100644 --- a/internal/monitoring/monitoring_test.go +++ b/internal/monitoring/monitoring_test.go @@ -1 +1,34 @@ package monitoring + +import ( + "net/http" + "testing" + "time" +) + +func TestMonitoringServe(t *testing.T) { + go Serve(&Options{Enabled: false, ListenAddress: "127.0.0.1:2112"}) + + // Sleep 0.5 second to ensure that the web server is running, to avoid fails because the request came too early + time.Sleep(500 * time.Millisecond) + + // Test GET request, should fail + resp, err := http.Get("http://127.0.0.1:2112/metrics") + if err == nil { + t.Error("Failed to fail task") + } + + go Serve(&Options{Enabled: true, ListenAddress: "127.0.0.1:2112"}) + + // Sleep 0.5 second to ensure that the web server is running, to avoid fails because the request came too early + time.Sleep(500 * time.Millisecond) + + // Test GET request + resp, err = http.Get("http://127.0.0.1:2112/metrics") + if err != nil { + t.Error("Error while getting /metrics:", err) + } + if resp.StatusCode != http.StatusOK { + t.Errorf("Metric page returned %v != %v on GET", resp.StatusCode, http.StatusOK) + } +}