package middleware import ( "log/slog" "github.com/prometheus/client_golang/prometheus" prommetrics "github.com/slok/go-http-metrics/metrics/prometheus" "sneak.berlin/go/webhooker/internal/config" "sneak.berlin/go/webhooker/internal/session" ) // NewForTest creates a Middleware with the minimum dependencies // needed for testing. This bypasses the fx lifecycle. // // Its metrics recorder writes to a fresh registry of its own, so // Metrics() works on it and two of them never collide. func NewForTest( log *slog.Logger, cfg *config.Config, sess *session.Session, ) *Middleware { return &Middleware{ log: log, params: &MiddlewareParams{ Config: cfg, }, session: sess, metricsRecorder: prommetrics.NewRecorder( prommetrics.Config{Registry: prometheus.NewRegistry()}, ), } }