(t *testing.T)
| 84 | } |
| 85 | |
| 86 | func TestSingBoxPatcher(t *testing.T) { |
| 87 | src := []byte(`{ |
| 88 | "outbounds": [ |
| 89 | {"type": "direct"}, |
| 90 | {"type": "vless", "server": "origin.example.com", "server_port": 443, "uuid": "u"} |
| 91 | ] |
| 92 | }`) |
| 93 | dir := t.TempDir() |
| 94 | p := filepath.Join(dir, "config.json") |
| 95 | if err := os.WriteFile(p, src, 0o644); err != nil { |
| 96 | t.Fatal(err) |
| 97 | } |
| 98 | if err := singBoxPatcher(p)("origin.example.com", 443); err != nil { |
| 99 | t.Fatalf("patch: %v", err) |
| 100 | } |
| 101 | raw, _ := os.ReadFile(p) |
| 102 | var doc map[string]any |
| 103 | _ = json.Unmarshal(raw, &doc) |
| 104 | vless := doc["outbounds"].([]any)[1].(map[string]any) |
| 105 | if vless["server"] != "127.0.0.1" { |
| 106 | t.Fatalf("server: %v", vless["server"]) |
| 107 | } |
| 108 | if vless["server_port"].(float64) != 40443 { |
| 109 | t.Fatalf("server_port: %v", vless["server_port"]) |
| 110 | } |
| 111 | if vless["uuid"] != "u" { |
| 112 | t.Fatalf("uuid clobbered: %v", vless["uuid"]) |
| 113 | } |
| 114 | } |
nothing calls this directly
no test coverage detected