MCPcopy Create free account
hub / github.com/compozy/agh / TestUnixSocketClientBridgeMethods

Function TestUnixSocketClientBridgeMethods

internal/cli/client_test.go:2709–2904  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2707}
2708
2709func TestUnixSocketClientBridgeMethods(t *testing.T) {
2710 t.Parallel()
2711
2712 client := &unixSocketClient{
2713 socketPath: "/tmp/agh.sock",
2714 httpClient: &http.Client{
2715 Transport: roundTripperFunc(func(req *http.Request) (*http.Response, error) {
2716 switch {
2717 case req.Method == http.MethodGet && req.URL.Path == "/api/bridges":
2718 return newHTTPResponse(
2719 http.StatusOK,
2720 `{"bridges":[{"id":"brg-a","scope":"global","platform":"telegram","extension_name":"ext-telegram","display_name":"Support","enabled":true,"status":"ready","routing_policy":{"include_peer":true},"created_at":"2026-04-11T12:00:00Z","updated_at":"2026-04-11T12:00:00Z"}]}`,
2721 ), nil
2722 case req.Method == http.MethodPost && req.URL.Path == "/api/bridges":
2723 var payload contract.CreateBridgeRequest
2724 if err := json.NewDecoder(req.Body).Decode(&payload); err != nil {
2725 t.Fatalf("json.Decode(create bridge body) error = %v", err)
2726 }
2727 if payload.Scope != bridgepkg.ScopeGlobal ||
2728 payload.WorkspaceID != "" ||
2729 payload.Platform != "telegram" ||
2730 payload.ExtensionName != "ext-telegram" ||
2731 payload.DisplayName != "Support" ||
2732 !payload.Enabled ||
2733 !reflect.DeepEqual(payload.RoutingPolicy, bridgepkg.RoutingPolicy{IncludePeer: true}) ||
2734 len(payload.DeliveryDefaults) != 0 {
2735 t.Fatalf("create bridge payload = %#v", payload)
2736 }
2737 return newHTTPResponse(
2738 http.StatusCreated,
2739 `{"bridge":{"id":"brg-a","scope":"global","platform":"telegram","extension_name":"ext-telegram","display_name":"Support","enabled":true,"status":"starting","routing_policy":{"include_peer":true},"created_at":"2026-04-11T12:00:00Z","updated_at":"2026-04-11T12:00:00Z"}}`,
2740 ), nil
2741 case req.Method == http.MethodGet && req.URL.Path == "/api/bridges/brg-a":
2742 return newHTTPResponse(
2743 http.StatusOK,
2744 `{"bridge":{"id":"brg-a","scope":"global","platform":"telegram","extension_name":"ext-telegram","display_name":"Support","enabled":true,"status":"ready","routing_policy":{"include_peer":true},"created_at":"2026-04-11T12:00:00Z","updated_at":"2026-04-11T12:00:00Z"}}`,
2745 ), nil
2746 case req.Method == http.MethodPatch && req.URL.Path == "/api/bridges/brg-a":
2747 var payload contract.UpdateBridgeRequest
2748 if err := json.NewDecoder(req.Body).Decode(&payload); err != nil {
2749 t.Fatalf("json.Decode(update bridge body) error = %v", err)
2750 }
2751 if payload.DisplayName == nil ||
2752 *payload.DisplayName != "Support Ops" ||
2753 payload.RoutingPolicy == nil ||
2754 !reflect.DeepEqual(
2755 *payload.RoutingPolicy,
2756 bridgepkg.RoutingPolicy{IncludePeer: true, IncludeThread: true},
2757 ) ||
2758 payload.DeliveryDefaults != nil {
2759 t.Fatalf("update bridge payload = %#v, want updated display name", payload)
2760 }
2761 return newHTTPResponse(
2762 http.StatusOK,
2763 `{"bridge":{"id":"brg-a","scope":"global","platform":"telegram","extension_name":"ext-telegram","display_name":"Support Ops","enabled":true,"status":"ready","routing_policy":{"include_peer":true,"include_thread":true},"created_at":"2026-04-11T12:00:00Z","updated_at":"2026-04-11T12:05:00Z"}}`,
2764 ), nil
2765 case req.Method == http.MethodPost && req.URL.Path == "/api/bridges/brg-a/enable":
2766 return newHTTPResponse(

Callers

nothing calls this directly

Calls 15

ListBridgesMethod · 0.95
CreateBridgeMethod · 0.95
GetBridgeMethod · 0.95
UpdateBridgeMethod · 0.95
EnableBridgeMethod · 0.95
DisableBridgeMethod · 0.95
RestartBridgeMethod · 0.95
BridgeRoutesMethod · 0.95
BridgeTargetsMethod · 0.95
ResolveBridgeTargetMethod · 0.95
TestBridgeDeliveryMethod · 0.95
roundTripperFuncFuncType · 0.85

Tested by

no test coverage detected