veza/veza-backend-api/internal/handlers/metrics_test.go

44 lines
987 B
Go

package handlers
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/gin-gonic/gin"
"github.com/stretchr/testify/assert"
)
func TestPrometheusMetrics_Success(t *testing.T) {
// Setup
gin.SetMode(gin.TestMode)
router := gin.New()
router.GET("/metrics", PrometheusMetrics())
// Execute
req, _ := http.NewRequest("GET", "/metrics", nil)
w := httptest.NewRecorder()
router.ServeHTTP(w, req)
// Assert - Prometheus handler should return 200 OK
assert.Equal(t, http.StatusOK, w.Code)
// Prometheus metrics should be in the response body
assert.Contains(t, w.Body.String(), "# HELP")
}
func TestPrometheusMetrics_WithQueryParams(t *testing.T) {
// Setup
gin.SetMode(gin.TestMode)
router := gin.New()
router.GET("/metrics", PrometheusMetrics())
// Execute - With query params
req, _ := http.NewRequest("GET", "/metrics?format=prometheus", nil)
w := httptest.NewRecorder()
router.ServeHTTP(w, req)
// Assert
assert.Equal(t, http.StatusOK, w.Code)
}