Extract resolveAccessTokenFromDir from getCachedRuntimeToken so both MCP and non-MCP clients (e.g. A2A gateway) share the same OAuth + legacy fallback logic including host compatibility hooks. - Add ResolveAuxiliaryAccessToken in internal/app for overlay use; reuses process-level token cache when configDir matches the edition default, avoiding repeated Keychain access. - Simplify pkg/runtimetoken to a thin delegate to the shared impl. - Refactor getCachedRuntimeToken to call resolveAccessTokenFromDir, removing duplicated provider/manager setup code. Made-with: Cursor
27 lines
641 B
Go
27 lines
641 B
Go
// Copyright 2026 Alibaba Group
|
|
// Licensed under the Apache License, Version 2.0
|
|
|
|
package app
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
)
|
|
|
|
func TestResolveAuxiliaryAccessToken_explicitToken(t *testing.T) {
|
|
tok, err := ResolveAuxiliaryAccessToken(context.Background(), "/any/dir", " bearer-xyz ")
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
if tok != "bearer-xyz" {
|
|
t.Fatalf("got %q, want bearer-xyz", tok)
|
|
}
|
|
}
|
|
|
|
func TestResolveAuxiliaryAccessToken_emptyConfigDir(t *testing.T) {
|
|
_, err := ResolveAuxiliaryAccessToken(context.Background(), " ", "")
|
|
if err == nil {
|
|
t.Fatal("expected error for empty config directory")
|
|
}
|
|
}
|