Replace 43 test files with their upstream/main versions to eliminate test file merge conflicts entirely (43 files, 604 markers → 0). Fork-only test functions are extracted to *_ext_test.go files (19 files) which have no upstream counterpart and thus never conflict. Source-level upstream alignment: - config/defaults: AllowRemote defaults to true - config/migration: model names match upstream (gpt-5.4) - session/manager: sanitizeFilename replaces / and \ - state: log.Printf instead of log.Fatalf on mkdir failure - wecom: verifySignature returns false on empty token (fail-closed) - openclaw migration: preserves AllowRemote default Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
73 lines
1.9 KiB
Go
73 lines
1.9 KiB
Go
package providers
|
|
|
|
import (
|
|
"github.com/sipeed/picoclaw/pkg/auth"
|
|
"github.com/sipeed/picoclaw/pkg/config"
|
|
"testing"
|
|
)
|
|
|
|
func TestCreateProviderByName_OpenAI_OAuth(t *testing.T) {
|
|
originalGetCredential := getCredential
|
|
t.Cleanup(func() { getCredential = originalGetCredential })
|
|
|
|
getCredential = func(provider string) (*auth.AuthCredential, error) {
|
|
if provider != "openai" {
|
|
t.Fatalf("provider = %q, want openai", provider)
|
|
}
|
|
return &auth.AuthCredential{
|
|
AccessToken: "openai-token",
|
|
AccountID: "acct_test",
|
|
}, nil
|
|
}
|
|
|
|
cfg := config.DefaultConfig()
|
|
cfg.Providers.OpenAI.AuthMethod = "oauth"
|
|
|
|
provider, err := CreateProviderByName(cfg, "openai")
|
|
if err != nil {
|
|
t.Fatalf("CreateProviderByName() error = %v", err)
|
|
}
|
|
|
|
if _, ok := provider.(*CodexProvider); !ok {
|
|
t.Fatalf("provider type = %T, want *CodexProvider", provider)
|
|
}
|
|
}
|
|
|
|
func TestCreateProviderByName_VLLM(t *testing.T) {
|
|
cfg := config.DefaultConfig()
|
|
cfg.Providers.VLLM.APIKey = "test-vllm-key"
|
|
cfg.Providers.VLLM.APIBase = "https://api.example.com/v1"
|
|
|
|
provider, err := CreateProviderByName(cfg, "vllm")
|
|
if err != nil {
|
|
t.Fatalf("CreateProviderByName() error = %v", err)
|
|
}
|
|
|
|
if _, ok := provider.(*HTTPProvider); !ok {
|
|
t.Fatalf("provider type = %T, want *HTTPProvider", provider)
|
|
}
|
|
}
|
|
|
|
func TestCreateProviderByName_Unknown(t *testing.T) {
|
|
cfg := config.DefaultConfig()
|
|
|
|
_, err := CreateProviderByName(cfg, "nonexistent-provider")
|
|
if err == nil {
|
|
t.Fatal("expected error for unknown provider, got nil")
|
|
}
|
|
}
|
|
|
|
func TestCreateProviderByName_CaseInsensitive(t *testing.T) {
|
|
cfg := config.DefaultConfig()
|
|
cfg.Providers.VLLM.APIKey = "test-key"
|
|
cfg.Providers.VLLM.APIBase = "https://example.com/v1"
|
|
|
|
provider, err := CreateProviderByName(cfg, "VLLM")
|
|
if err != nil {
|
|
t.Fatalf("CreateProviderByName() error = %v", err)
|
|
}
|
|
|
|
if _, ok := provider.(*HTTPProvider); !ok {
|
|
t.Fatalf("provider type = %T, want *HTTPProvider", provider)
|
|
}
|
|
}
|