返回 DeepSeek-Reasonix
serve_browser_test.go
根目录 / internal / cli / serve_browser_test.go
1 package cli
2
3 import (
4 "flag"
5 "testing"
6
7 "reasonix/internal/remote/bootstrap"
8 )
9
10 func TestServeBrowserBrokerFromEnv(t *testing.T) {
11 env := func(pairs map[string]string) func(string) string {
12 return func(k string) string { return pairs[k] }
13 }
14 if broker, err := serveBrowserBrokerFromEnv(env(nil)); err != nil || broker != nil {
15 t.Fatalf("empty env = %v, %v; want nil, nil", broker, err)
16 }
17 if _, err := serveBrowserBrokerFromEnv(env(map[string]string{bootstrap.BrowserBrokerEnv: "http://127.0.0.1:9"})); err == nil {
18 t.Fatal("endpoint without token accepted")
19 }
20 if _, err := serveBrowserBrokerFromEnv(env(map[string]string{bootstrap.BrowserTokenEnv: "t"})); err == nil {
21 t.Fatal("token without endpoint accepted")
22 }
23 if _, err := serveBrowserBrokerFromEnv(env(map[string]string{
24 bootstrap.BrowserBrokerEnv: "http://10.0.0.1:9", bootstrap.BrowserTokenEnv: "t",
25 })); err == nil {
26 t.Fatal("non-loopback endpoint accepted")
27 }
28 broker, err := serveBrowserBrokerFromEnv(env(map[string]string{
29 bootstrap.BrowserBrokerEnv: "http://127.0.0.1:9", bootstrap.BrowserTokenEnv: "t",
30 }))
31 if err != nil {
32 t.Fatal(err)
33 }
34 if broker == nil || broker.Endpoint() != "http://127.0.0.1:9" {
35 t.Fatalf("broker = %+v", broker)
36 }
37 }
38
39 func TestServeHelpAdvertisesBrowserBrokerMarker(t *testing.T) {
40 fs := flag.NewFlagSet("serve", flag.ContinueOnError)
41 registerServeCapabilityFlags(fs)
42 seen := false
43 fs.VisitAll(func(f *flag.Flag) { seen = seen || f.Name == bootstrap.ServeBrowserBrokerMarker })
44 if !seen {
45 t.Fatalf("serve flags lack the %s capability marker", bootstrap.ServeBrowserBrokerMarker)
46 }
47 }
48
48 lines GO