返回 DeepSeek-Reasonix
settings_provider_web_search_test.go
根目录 / desktop / settings_provider_web_search_test.go
1 package main
2
3 import (
4 "testing"
5
6 "reasonix/internal/config"
7 )
8
9 func TestSaveProviderPersistsWebSearchOffWithDisplayedRequestURL(t *testing.T) {
10 for _, tc := range []struct{ name, kind, base, request string }{
11 {"deepseek-responses", "responses", "https://api.deepseek.com", "https://api.deepseek.com/responses"},
12 {"deepseek-anthropic", "anthropic", "https://api.deepseek.com/anthropic", "https://api.deepseek.com/anthropic/v1/messages"},
13 } {
14 t.Run(tc.kind, func(t *testing.T) {
15 cfg := config.Default()
16 cfg.Providers = []config.ProviderEntry{{
17 Name: tc.name, PresetID: tc.name, Kind: tc.kind, BaseURL: tc.base,
18 Model: "deepseek-v4-flash", Models: []string{"deepseek-v4-flash"},
19 }}
20 view := providerViewFromEntry(cfg.Providers[0], false, true)
21 if !view.WebSearch {
22 t.Fatalf("official endpoint should default search on: %+v", view)
23 }
24 view.RequestURL = tc.request
25 view.WebSearch = false
26 if err := saveProviderConfig(cfg, view); err != nil {
27 t.Fatalf("save provider: %v", err)
28 }
29 got := cfg.Providers[0]
30 if got.WebSearch == nil || *got.WebSearch {
31 t.Fatalf("search switch not persisted off: %+v", got.WebSearch)
32 }
33 if providerViewFromEntry(got, false, true).WebSearch {
34 t.Fatal("reloaded view reads search back as on")
35 }
36 })
37 }
38 }
39
40 func TestSaveProviderDropsWebSearchForCustomRequestURL(t *testing.T) {
41 cfg := config.Default()
42 cfg.Providers = []config.ProviderEntry{{
43 Name: "deepseek-responses", PresetID: "deepseek-responses", Kind: "responses", BaseURL: "https://api.deepseek.com",
44 Model: "deepseek-v4-flash", Models: []string{"deepseek-v4-flash"},
45 }}
46 view := providerViewFromEntry(cfg.Providers[0], false, true)
47 view.RequestURL = "https://relay.example/responses"
48 view.WebSearch = false
49 if err := saveProviderConfig(cfg, view); err != nil {
50 t.Fatalf("save provider: %v", err)
51 }
52 if got := cfg.Providers[0]; got.WebSearch != nil || config.IsOfficialDeepSeekSearchEndpoint(&got) {
53 t.Fatalf("custom request URL kept official search state: %+v", got)
54 }
55 }
56
56 lines GO