| 1 | package main |
| 2 | |
| 3 | import ( |
| 4 | "reasonix/internal/config" |
| 5 | "testing" |
| 6 | ) |
| 7 | |
| 8 | func TestProviderViewFromEntryUsesEffectiveWebSearch(t *testing.T) { |
| 9 | view := providerViewFromEntry(config.ProviderEntry{ |
| 10 | Name: "deepseek-responses", |
| 11 | Kind: "responses", |
| 12 | BaseURL: "https://api.deepseek.com", |
| 13 | }, false, true) |
| 14 | if !view.WebSearch { |
| 15 | t.Fatal("official DeepSeek Responses omission did not default web search on") |
| 16 | } |
| 17 | |
| 18 | chat := providerViewFromEntry(config.ProviderEntry{Name: "deepseek-chat", Kind: "openai", BaseURL: "https://api.deepseek.com/v1"}, false, true) |
| 19 | if !chat.WebSearch || !chat.ServerWebSearchCapability { |
| 20 | t.Fatal("official Chat Completions account did not expose independent search") |
| 21 | } |
| 22 | |
| 23 | disabled := false |
| 24 | explicitOff := providerViewFromEntry(config.ProviderEntry{ |
| 25 | Name: "deepseek-responses", |
| 26 | Kind: "responses", |
| 27 | BaseURL: "https://api.deepseek.com", |
| 28 | WebSearch: &disabled, |
| 29 | }, false, true) |
| 30 | if explicitOff.WebSearch { |
| 31 | t.Fatal("explicit web_search=false was not preserved") |
| 32 | } |
| 33 | |
| 34 | custom := providerViewFromEntry(config.ProviderEntry{ |
| 35 | Name: "custom-responses", |
| 36 | Kind: "responses", |
| 37 | BaseURL: "https://gateway.example/v1", |
| 38 | }, false, true) |
| 39 | if custom.WebSearch { |
| 40 | t.Fatal("custom provider unexpectedly enabled web search") |
| 41 | } |
| 42 | if custom.ServerWebSearchCapability { |
| 43 | t.Fatal("unverified custom Responses provider unexpectedly exposed server web search in Settings") |
| 44 | } |
| 45 | |
| 46 | openAI := providerViewFromEntry(config.ProviderEntry{ |
| 47 | Name: "custom-openai", |
| 48 | Kind: "openai", |
| 49 | BaseURL: "https://gateway.example/v1", |
| 50 | WebSearch: func() *bool { enabled := true; return &enabled }(), |
| 51 | }, false, true) |
| 52 | if openAI.ServerWebSearchCapability || openAI.WebSearch { |
| 53 | t.Fatal("OpenAI Chat Completions unexpectedly reported server web-search support") |
| 54 | } |
| 55 | } |
| 56 |