Files
upstream-centrifugo/internal/middleware/user_header_auth_test.go
upstream-mirror b352a9a30d
Some checks failed
test / Lint (push) Failing after 3s
test / Test with Go 1.26.8 (push) Failing after 2s
snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:17:21 +05:00

47 lines
1.3 KiB
Go

package middleware
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/centrifugal/centrifuge"
"github.com/stretchr/testify/require"
)
func userHeaderAuthTestHandler(t *testing.T, userMustBeSet bool) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
cred, ok := centrifuge.GetCredentials(r.Context())
if userMustBeSet {
require.True(t, ok, "credentials should be set")
require.Equal(t, "123", cred.UserID, "user ID should be set correctly")
} else {
require.False(t, ok)
}
_, _ = w.Write([]byte("OK"))
})
}
func TestUserHeaderAuthWithUserID(t *testing.T) {
middleware := UserHeaderAuth("X-User-ID")
req := httptest.NewRequest("GET", "/test", nil)
req.Header.Set("X-User-ID", "123")
rr := httptest.NewRecorder()
handler := middleware(userHeaderAuthTestHandler(t, true))
handler.ServeHTTP(rr, req)
require.Equal(t, http.StatusOK, rr.Code, "status code should be 200 OK")
}
func TestUserHeaderAuthWithoutUserID(t *testing.T) {
middleware := UserHeaderAuth("X-User-ID")
req := httptest.NewRequest("GET", "/test", nil)
rr := httptest.NewRecorder()
handler := middleware(userHeaderAuthTestHandler(t, false))
handler.ServeHTTP(rr, req)
require.Equal(t, http.StatusOK, rr.Code, "status code should be 200 OK")
}