package fabricvpn import ( "encoding/json" "os" "strings" "testing" ) func TestLiveFabricControlRequest(t *testing.T) { cfg := strings.TrimSpace(os.Getenv("RAP_LIVE_FABRIC_CONTROL_CONFIG")) if cfg == "" { t.Skip("set RAP_LIVE_FABRIC_CONTROL_CONFIG to run live fabric control test") } path := strings.TrimSpace(os.Getenv("RAP_LIVE_FABRIC_CONTROL_PATH")) if path == "" { path = "/organizations/?user_id=3fded8a8-f19b-4974-919f-44d34ac5f63d" } method := strings.TrimSpace(os.Getenv("RAP_LIVE_FABRIC_CONTROL_METHOD")) if method == "" { method = "GET" } body := strings.TrimSpace(os.Getenv("RAP_LIVE_FABRIC_CONTROL_BODY")) manager := NewManager() if err := manager.Start(cfg); err != nil { t.Fatalf("start manager: %v", err) } defer manager.Stop() request := map[string]any{"method": method, "path": path} if body != "" { var raw json.RawMessage if err := json.Unmarshal([]byte(body), &raw); err != nil { t.Fatalf("invalid request body: %v", err) } request["body"] = raw } payload, err := json.Marshal(request) if err != nil { t.Fatal(err) } response, err := manager.ControlRequest(string(payload)) if err != nil { t.Fatalf("control request failed: %v", err) } if !strings.Contains(response, "status_code") { t.Fatalf("unexpected control response: %s", response) } t.Log(response) }