44 lines
987 B
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)
|
|
}
|