argo-cd/util/session/sessionmanager_test.go
Jesse Suen dc662da3d6
Support OAuth2 login flow from CLI (resolves #172) (#181)
* Support OAuth2 login flow from CLI (resolves #172)
* Refactor SessionManager to handle local and OAuth2 logins.
* argo login will request permanent credentials after OAuth2 flow
* Implement proper OIDC app state nonce. Add explicit `--sso` flag to `argo login`
2018-05-10 15:43:58 -07:00

45 lines
1,015 B
Go

package session
import (
"testing"
"github.com/argoproj/argo-cd/util/settings"
jwt "github.com/dgrijalva/jwt-go"
)
func TestSessionManager(t *testing.T) {
const (
defaultSecretKey = "Hello, world!"
defaultSubject = "argo"
)
set := settings.ArgoCDSettings{
ServerSignature: []byte(defaultSecretKey),
}
mgr := NewSessionManager(&set)
token, err := mgr.Create(defaultSubject)
if err != nil {
t.Errorf("Could not create token: %v", err)
}
claims, err := mgr.Parse(token)
if err != nil {
t.Errorf("Could not parse token: %v", err)
}
mapClaims := *(claims.(*jwt.MapClaims))
subject := mapClaims["sub"].(string)
if subject != "argo" {
t.Errorf("Token claim subject \"%s\" does not match expected subject \"%s\".", subject, defaultSubject)
}
}
func TestMakeSignature(t *testing.T) {
for size := 1; size <= 64; size++ {
s, err := MakeSignature(size)
if err != nil {
t.Errorf("Could not generate signature of size %d: %v", size, err)
}
t.Logf("Generated token: %v", s)
}
}