mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
ce6bf74c8d
This fixes edge cases where the remote IP was not correctly logged. Generally this is not an issue as most errors do not hit this handler, but in instances where a transport error occurs this is important.
45 lines
996 B
Go
45 lines
996 B
Go
package handlers
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
"github.com/stretchr/testify/suite"
|
|
|
|
"github.com/authelia/authelia/v4/internal/mocks"
|
|
)
|
|
|
|
type LogoutSuite struct {
|
|
suite.Suite
|
|
|
|
mock *mocks.MockAutheliaCtx
|
|
}
|
|
|
|
func (s *LogoutSuite) SetupTest() {
|
|
s.mock = mocks.NewMockAutheliaCtx(s.T())
|
|
userSession := s.mock.Ctx.GetSession()
|
|
userSession.Username = testUsername
|
|
err := s.mock.Ctx.SaveSession(userSession)
|
|
require.NoError(s.T(), err)
|
|
}
|
|
|
|
func (s *LogoutSuite) TearDownTest() {
|
|
s.mock.Close()
|
|
}
|
|
|
|
func (s *LogoutSuite) TestShouldDestroySession() {
|
|
LogoutPOST(s.mock.Ctx)
|
|
b := s.mock.Ctx.Response.Header.PeekCookie("authelia_session")
|
|
|
|
// Reset the cookie, meaning it resets the value and expires the cookie by setting
|
|
// date to one minute in the past.
|
|
assert.True(s.T(), strings.HasPrefix(string(b), "authelia_session=;"))
|
|
}
|
|
|
|
func TestRunLogoutSuite(t *testing.T) {
|
|
s := new(LogoutSuite)
|
|
suite.Run(t, s)
|
|
}
|