50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
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)
|
|
}
|