picoclaw/pkg/providers/factory_ext_test.go
dj-oyu ee34c60df2 refactor: replace test files with upstream versions, extract fork-only tests
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>
2026-03-13 03:18:54 +09:00

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)
}
}