mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-14 13:14:39 +02:00
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
// Copyright 2025 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package common
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
"github.com/prometheus/client_golang/prometheus/testutil"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMetricsMiddlewere(t *testing.T) {
|
|
middleware := RouteMetrics()
|
|
r := chi.NewRouter()
|
|
r.Use(middleware)
|
|
r.Get("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
w.Write([]byte("test"))
|
|
time.Sleep(5 * time.Millisecond)
|
|
}))
|
|
testServer := httptest.NewServer(r)
|
|
// Check all defined metrics
|
|
verify := func(i int) {
|
|
assert.Equal(t, testutil.CollectAndCount(reqDurationHistogram, "http_server_request_duration_seconds"), i)
|
|
assert.Equal(t, testutil.CollectAndCount(reqSizeHistogram, "http_server_request_body_size"), i)
|
|
assert.Equal(t, testutil.CollectAndCount(respSizeHistogram, "http_server_response_body_size"), i)
|
|
assert.Equal(t, testutil.CollectAndCount(reqInflightGauge, "http_server_active_requests"), i)
|
|
}
|
|
|
|
// Check they don't exist before making a request
|
|
verify(0)
|
|
_, err := http.Get(testServer.URL)
|
|
require.NoError(t, err)
|
|
// Check they do exist after making the request
|
|
verify(1)
|
|
}
|