authelia/middlewares/authelia_context_test.go
Clement Michaud 828f565290 Bootstrap Go implementation of Authelia.
This is going to be the v4.

Expected improvements:
- More reliable due to static typing.
- Bump of performance.
- Improvement of logging.
- Authelia can be shipped as a single binary.
- Will likely work on ARM architecture.
2019-10-28 23:28:59 +01:00

36 lines
976 B
Go

package middlewares_test
import (
"testing"
"github.com/clems4ever/authelia/session"
"github.com/clems4ever/authelia/configuration/schema"
"github.com/clems4ever/authelia/middlewares"
"github.com/clems4ever/authelia/mocks"
"github.com/golang/mock/gomock"
"github.com/stretchr/testify/assert"
"github.com/valyala/fasthttp"
)
func TestShouldCallNextWithAutheliaCtx(t *testing.T) {
ctrl := gomock.NewController(t)
ctx := &fasthttp.RequestCtx{}
configuration := schema.Configuration{}
userProvider := mocks.NewMockUserProvider(ctrl)
sessionProvider := session.NewProvider(configuration.Session)
providers := middlewares.Providers{
UserProvider: userProvider,
SessionProvider: sessionProvider,
}
nextCalled := false
middlewares.AutheliaMiddleware(configuration, providers)(func(actx *middlewares.AutheliaCtx) {
// Authelia context wraps the request.
assert.Equal(t, ctx, actx.RequestCtx)
nextCalled = true
})(ctx)
assert.True(t, nextCalled)
}