52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
//go:build unit
|
|
|
|
package service
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
kiropkg "github.com/Wei-Shaw/sub2api/internal/pkg/kiro"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestKiroIDCAuthRedirectURIUsesLoopbackIP(t *testing.T) {
|
|
require.Equal(t, "http://127.0.0.1:9876/oauth/callback", kiroIDCRedirectURI)
|
|
}
|
|
|
|
func TestKiroSocialAuthRedirectURIUsesLoopbackIP(t *testing.T) {
|
|
require.Equal(t, "http://localhost:49153", kiroSocialRedirectURI)
|
|
}
|
|
|
|
func TestBuildKiroSocialExchangeRedirectURIUsesProviderDefault(t *testing.T) {
|
|
require.Equal(
|
|
t,
|
|
"http://localhost:49153/oauth/callback?login_option=github",
|
|
buildKiroSocialExchangeRedirectURI("http://localhost:49153", "Github", "", ""),
|
|
)
|
|
}
|
|
|
|
func TestBuildKiroSocialExchangeRedirectURIPreservesParsedCallbackData(t *testing.T) {
|
|
require.Equal(
|
|
t,
|
|
"http://localhost:49153/signin/callback?login_option=google",
|
|
buildKiroSocialExchangeRedirectURI("http://localhost:49153", "Github", "/signin/callback", "google"),
|
|
)
|
|
}
|
|
|
|
func TestKiroOAuthService_ExchangeCodeRejectsExpiredSession(t *testing.T) {
|
|
svc := NewKiroOAuthService(nil)
|
|
svc.sessionStore.Set("expired-session", &kiropkg.AuthSession{
|
|
State: "expected-state",
|
|
CreatedAt: time.Now().Add(-11 * time.Minute),
|
|
})
|
|
|
|
_, err := svc.ExchangeCode(context.Background(), &KiroExchangeCodeInput{
|
|
SessionID: "expired-session",
|
|
State: "expected-state",
|
|
Code: "auth-code",
|
|
})
|
|
require.EqualError(t, err, "session not found or expired")
|
|
}
|