package deepseek_test import ( "context" "errors" "testing" "gitea.stevedudenhoeffer.com/steve/go-llm/v2/deepseek" "gitea.stevedudenhoeffer.com/steve/go-llm/v2/openaicompat" "gitea.stevedudenhoeffer.com/steve/go-llm/v2/provider" ) func TestNew_DefaultBaseURL(t *testing.T) { if p := deepseek.New("key", ""); p == nil { t.Fatal("New returned nil") } } func TestRules_ReasonerRejectsTools(t *testing.T) { p := deepseek.New("key", "") req := provider.Request{ Model: "deepseek-reasoner", Messages: []provider.Message{{Role: "user", Content: "hi"}}, Tools: []provider.ToolDef{ {Name: "x", Schema: map[string]any{"type": "object"}}, }, } _, err := p.Complete(context.Background(), req) var fue *openaicompat.FeatureUnsupportedError if !errors.As(err, &fue) || fue.Feature != "tools" { t.Fatalf("want FeatureUnsupportedError(tools), got %v", err) } } func TestRules_ChatRejectsImages(t *testing.T) { p := deepseek.New("key", "") req := provider.Request{ Model: "deepseek-chat", Messages: []provider.Message{{ Role: "user", Images: []provider.Image{{URL: "a"}}, }}, } _, err := p.Complete(context.Background(), req) var fue *openaicompat.FeatureUnsupportedError if !errors.As(err, &fue) || fue.Feature != "vision" { t.Fatalf("want FeatureUnsupportedError(vision), got %v", err) } }