logout_test.go 968 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package user_test
  2. import (
  3. "net/http"
  4. "testing"
  5. "github.com/porter-dev/porter/api/server/handlers/user"
  6. "github.com/porter-dev/porter/api/server/shared/apitest"
  7. "github.com/porter-dev/porter/api/types"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestLogoutUserSuccessful(t *testing.T) {
  11. req, rr := apitest.GetRequestAndRecorder(
  12. t,
  13. string(types.HTTPVerbPost),
  14. "/api/logout",
  15. nil,
  16. )
  17. config := apitest.LoadConfig(t)
  18. authUser := apitest.CreateTestUser(t, config, true)
  19. apitest.WithAuthenticatedUser(t, req, authUser)
  20. handler := user.NewUserLogoutHandler(config)
  21. handler.ServeHTTP(rr, req)
  22. assert.Equal(t, http.StatusOK, rr.Result().StatusCode, "status code should be 200")
  23. // read the session to make sure "authenticated" is false
  24. session, err := config.Store.Get(req, config.ServerConf.CookieName)
  25. if err != nil {
  26. t.Fatal(err)
  27. }
  28. assert.False(t, session.Values["authenticated"].(bool), "authenticated in session should be false")
  29. }