56 lines
1.4 KiB
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())
|
|
}
|