1package provider
2
3import (
4 "context"
5 "strings"
6 "testing"
7)
8
9func TestOpenAIFastModeAddsServiceTier(t *testing.T) {
10 client := NewOpenAI("key", "").(*openaiClient)
11
12 wire, err := client.buildRequest(Request{Model: "gpt-5", FastMode: true})
13 if err != nil {
14 t.Fatal(err)
15 }
16 if wire.ServiceTier != fastModeServiceTier {
17 t.Fatalf("service_tier = %q, want %q", wire.ServiceTier, fastModeServiceTier)
18 }
19
20 wire, err = client.buildRequest(Request{Model: "gpt-5"})
21 if err != nil {
22 t.Fatal(err)
23 }
24 if wire.ServiceTier != "" {
25 t.Fatalf("service_tier = %q with fast mode disabled, want omitted", wire.ServiceTier)
26 }
27}
28
29func TestOpenAICodexFastModeAddsServiceTier(t *testing.T) {
30 client := NewOpenAICodex("token", "account", "").(*codexClient)
31
32 wire, err := client.buildRequest(Request{Model: "gpt-5.6-sol", FastMode: true})
33 if err != nil {
34 t.Fatal(err)
35 }
36 if wire.ServiceTier != fastModeServiceTier {
37 t.Fatalf("service_tier = %q, want %q", wire.ServiceTier, fastModeServiceTier)
38 }
39}
40
41func TestFastModeIsRestrictedToOpenAIProviders(t *testing.T) {
42 for _, providerName := range []string{"openai", "openai-codex", "openai-responses"} {
43 if err := ValidateFastMode(providerName, true); err != nil {
44 t.Errorf("ValidateFastMode(%q, true) = %v", providerName, err)
45 }
46 }
47
48 for _, providerName := range []string{"anthropic", "google", "openrouter", "azure-openai-responses"} {
49 err := ValidateFastMode(providerName, true)
50 if err == nil || !strings.Contains(err.Error(), "only supported for OpenAI providers") {
51 t.Errorf("ValidateFastMode(%q, true) = %v, want unsupported-provider error", providerName, err)
52 }
53 }
54}
55
56func TestFastModeRejectedBeforeNonOpenAIRequest(t *testing.T) {
57 client := NewOpenAICompat("openrouter", "key", "", "")
58 _, err := client.Stream(context.Background(), Request{Model: "gpt-5", FastMode: true})
59 if err == nil || !strings.Contains(err.Error(), "only supported for OpenAI providers") {
60 t.Fatalf("Stream error = %v, want unsupported-provider error", err)
61 }
62}