57 lines
1.7 KiB
Go
57 lines
1.7 KiB
Go
//go:build unit
|
|
|
|
package kiro
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestBuildSocialSignInURLUsesAppPortal(t *testing.T) {
|
|
got := BuildSocialSignInURL("http://localhost:49153", "challenge123", "state456")
|
|
want := "https://app.kiro.dev/signin?code_challenge=challenge123&code_challenge_method=S256&redirect_from=KiroIDE&redirect_uri=http%3A%2F%2Flocalhost%3A49153&state=state456"
|
|
if got != want {
|
|
t.Fatalf("BuildSocialSignInURL() = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestBuildSocialTokenRedirectURI(t *testing.T) {
|
|
got := BuildSocialTokenRedirectURI("http://localhost:49153", "/oauth/callback", "github")
|
|
want := "http://localhost:49153/oauth/callback?login_option=github"
|
|
if got != want {
|
|
t.Fatalf("BuildSocialTokenRedirectURI() = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestSessionStoreGetDeletesExpiredSession(t *testing.T) {
|
|
store := NewSessionStore()
|
|
store.Set("expired", &AuthSession{CreatedAt: time.Now().Add(-2 * sessionTTL)})
|
|
|
|
session, ok := store.Get("expired")
|
|
if ok || session != nil {
|
|
t.Fatalf("Get(expired) = (%v, %v), want (nil, false)", session, ok)
|
|
}
|
|
if _, exists := store.data["expired"]; exists {
|
|
t.Fatalf("expired session should be deleted from the store")
|
|
}
|
|
}
|
|
|
|
func TestSessionStoreSetPrunesExpiredSessions(t *testing.T) {
|
|
store := NewSessionStore()
|
|
now := time.Now()
|
|
for i := 0; i < sessionCleanupMin; i++ {
|
|
store.data[fmt.Sprintf("expired-%d", i)] = &AuthSession{CreatedAt: now.Add(-2 * sessionTTL)}
|
|
}
|
|
store.setCount = sessionCleanupEvery - 1
|
|
|
|
store.Set("fresh", &AuthSession{CreatedAt: now})
|
|
|
|
if len(store.data) != 1 {
|
|
t.Fatalf("store size = %d, want 1", len(store.data))
|
|
}
|
|
if _, ok := store.data["fresh"]; !ok {
|
|
t.Fatalf("fresh session should remain after pruning")
|
|
}
|
|
}
|