feat(backend): add kiro account support
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
//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")
|
||||
}
|
||||
Reference in New Issue
Block a user