internal/middleware/request_meta_middleware_test.go
Rama main · réplica de lectura del repositorio original.
package middleware
import (
"context"
"net/http"
"net/http/httptest"
"testing"
"xprem/internal/auditlog"
"github.com/stretchr/testify/require"
)
func TestRequestMetaMiddlewareStampsContext(t *testing.T) {
var seen auditlog.RequestMeta
handler := RequestMetaMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
seen = auditlog.MetaFromContext(r.Context())
}))
req := httptest.NewRequest(http.MethodGet, "/api/settings", nil)
req.RemoteAddr = "203.0.113.9:51234"
req.Header.Set("User-Agent", "test-agent/1.0")
handler.ServeHTTP(httptest.NewRecorder(), req)
require.Equal(t, "203.0.113.9", seen.IP)
require.Equal(t, "test-agent/1.0", seen.UserAgent)
}
func TestMetaFromContextOutsideARequest(t *testing.T) {
// Jobs and tests emit without a request: no network context, no panic.
require.Zero(t, auditlog.MetaFromContext(context.Background()))
}