返回 DeepSeek-Reasonix
cred_proxy_lock_test.go
根目录 / desktop / cred_proxy_lock_test.go
1 package main
2
3 import (
4 "net/http"
5 "net/http/httptest"
6 "testing"
7
8 "reasonix/internal/config"
9 )
10
11 func TestSaveProviderCredentialPreservesRouteWhileConfigEditLocked(t *testing.T) {
12 isolateDesktopUserDirs(t)
13 const keyEnv = "TEST_PROXY_CONFIG_LOCK_KEY"
14 setDesktopTestCredential(t, keyEnv, "sk-before-lock")
15 auth := make(chan string, 1)
16 upstream := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
17 auth <- r.Header.Get("Authorization")
18 _, _ = w.Write([]byte("ok"))
19 }))
20 defer upstream.Close()
21
22 modelRef, _ := configureCredentialProxyTestModels(t, upstream.URL, keyEnv)
23 a := &App{}
24 t.Cleanup(a.closeCredentialProxy)
25 route, err := a.applyCredentialProxyModel("box", "~/app", modelRef)
26 if err != nil {
27 t.Fatal(err)
28 }
29
30 if err := func() error {
31 unlock := config.LockUserConfigEdits()
32 defer unlock()
33 _, err := a.saveProviderCredential(keyEnv, "sk-after-lock")
34 return err
35 }(); err != nil {
36 t.Fatal(err)
37 }
38 requestCredentialProxy(t, route.port, route.token)
39 if got := <-auth; got != "Bearer sk-before-lock" {
40 t.Fatalf("existing route changed credential: %q", got)
41 }
42 }
43
43 lines GO