pomerium/pkg/grpcutil/grpcutil_test.go

51 lines
1.5 KiB
Go

package grpcutil
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"google.golang.org/grpc/metadata"
)
func TestWithOutgoingSessionID(t *testing.T) {
ctx := context.Background()
ctx = WithOutgoingSessionID(ctx, "EXAMPLE")
md, ok := metadata.FromOutgoingContext(ctx)
if !assert.True(t, ok) {
return
}
assert.Equal(t, []string{"EXAMPLE"}, md.Get("sessionid"))
}
func TestSessionIDFromGRPCRequest(t *testing.T) {
ctx := context.Background()
ctx = metadata.NewIncomingContext(ctx, metadata.MD{
"sessionid": {"EXAMPLE"},
})
sessionID, ok := SessionIDFromGRPCRequest(ctx)
assert.True(t, ok)
assert.Equal(t, "EXAMPLE", sessionID)
}
func TestWithOutgoingJWT(t *testing.T) {
rawjwt := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
ctx := context.Background()
ctx = WithOutgoingJWT(ctx, rawjwt)
md, ok := metadata.FromOutgoingContext(ctx)
if !assert.True(t, ok) {
return
}
assert.Equal(t, []string{rawjwt}, md.Get("jwt"))
}
func TestJWTFromGRPCRequest(t *testing.T) {
rawjwt := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
ctx := context.Background()
ctx = metadata.NewIncomingContext(ctx, metadata.MD{
"jwt": {rawjwt},
})
found, ok := JWTFromGRPCRequest(ctx)
assert.True(t, ok)
assert.Equal(t, rawjwt, found)
}