oauth2-proxy/pics_oauthproxy_test.go

56 lines
1.4 KiB
Go

package main
import (
"encoding/base64"
"encoding/json"
"net/http"
"net/http/httptest"
"testing"
"github.com/stretchr/testify/assert"
)
func createIntrospectClaims() string {
claims := map[string]interface{}{
"sub": "1234567890",
}
claimsBytes, err := json.Marshal(claims)
if err != nil {
return ""
}
return base64.StdEncoding.EncodeToString(claimsBytes)
}
func Test_PicsSignOutAllSessionsReturnsErrorWhenUserIDIsNotFound(t *testing.T) {
_, err := PicsSignOutAllSessions("http://localhost:8080/test", "", "")
assert.Error(t, err)
}
func Test_getUserID(t *testing.T) {
introspectClaims := createIntrospectClaims()
userID, err := getUserID(introspectClaims)
assert.NoError(t, err)
assert.Equal(t, "1234567890", userID)
}
func Test_PicsSignOutAllSessionsReturns200Ok(t *testing.T) {
introspectClaims := createIntrospectClaims()
accessToken := "validAccessToken"
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, "Bearer "+accessToken, r.Header.Get("Authorization"))
assert.Equal(t, "1", r.Header.Get("API-Version"))
assert.Equal(t, "application/json", r.Header.Get("Accept"))
w.WriteHeader(http.StatusOK)
}))
defer server.Close()
resp, err := PicsSignOutAllSessions(server.URL+"/{user_id}", introspectClaims, accessToken)
assert.NoError(t, err)
assert.Equal(t, http.StatusOK, resp.StatusCode())
}