Files
karma/main_test.go
2019-05-12 11:53:39 +01:00

55 lines
1.2 KiB
Go

package main
import (
"net/http"
"net/http/httptest"
"strings"
"testing"
"github.com/prymitive/karma/internal/config"
log "github.com/sirupsen/logrus"
)
func TestLogConfig(t *testing.T) {
logLevels := map[string]log.Level{
"debug": log.DebugLevel,
"info": log.InfoLevel,
"warning": log.WarnLevel,
"error": log.ErrorLevel,
"fatal": log.FatalLevel,
"panic": log.PanicLevel,
}
for val, level := range logLevels {
config.Config.Log.Level = val
setupLogger()
if log.GetLevel() != level {
t.Errorf("Config.Log.Level=%s resulted in invalid log level %s", val, log.GetLevel())
}
}
}
func TestMetrics(t *testing.T) {
mockConfig()
r := ginTestEngine()
setupMetrics(r)
req := httptest.NewRequest("GET", "/metrics", nil)
resp := httptest.NewRecorder()
r.ServeHTTP(resp, req)
if resp.Code != http.StatusOK {
t.Errorf("GET /metrics returned status %d", resp.Code)
}
body := resp.Body.String()
for _, s := range []string{
"karma_collected_alerts_count",
"karma_collected_alerts_count",
"karma_collect_cycles_total",
"karma_alertmanager_errors_total",
} {
if !strings.Contains(body, s) {
t.Errorf("Metric '%s' missing from /metrics response", s)
}
}
}