Files
Messenger/server/internal/platform/metrics/metrics_test.go
T
vantablackTea a0b17d25bf
CI / Go (build + vet + test) (push) Canceled after 0s
CI / Web (build + lint) (push) Canceled after 0s
fix: WS upgrade via metrics middleware (realtime), DM names, tap reactions
2026-09-28 14:07:59 +03:00

31 lines
665 B
Go

package metrics
import (
"bufio"
"net"
"net/http"
"net/http/httptest"
"testing"
)
type hijackRecorder struct {
*httptest.ResponseRecorder
}
func (h *hijackRecorder) Hijack() (net.Conn, *bufio.ReadWriter, error) {
return nil, nil, nil
}
func TestMiddlewarePreservesHijacker(t *testing.T) {
var seen http.ResponseWriter
handler := Middleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
seen = w
}))
handler.ServeHTTP(&hijackRecorder{httptest.NewRecorder()}, httptest.NewRequest(http.MethodGet, "/", nil))
if _, ok := seen.(http.Hijacker); !ok {
t.Fatal("middleware stripped http.Hijacker: WebSocket upgrades will fail")
}
}