Select fabric carrier by endpoint

This commit is contained in:
2026-05-16 10:22:44 +03:00
parent 130ff117f3
commit d3e5d540bb
6 changed files with 70 additions and 4 deletions
@@ -107,3 +107,33 @@ func TestWebSocketFabricTransportReopensClosedSession(t *testing.T) {
t.Fatalf("opened = %d, want 2", opened)
}
}
func TestFabricTransportForTargetSelectsQUICByScheme(t *testing.T) {
transport, target, err := FabricTransportForTarget(FabricTransportTarget{
Endpoint: "quic://127.0.0.1:4433",
}, nil, nil)
if err != nil {
t.Fatalf("select transport: %v", err)
}
if _, ok := transport.(*QUICFabricTransport); !ok {
t.Fatalf("transport = %T, want QUIC", transport)
}
if target.Endpoint != "127.0.0.1:4433" {
t.Fatalf("endpoint = %q", target.Endpoint)
}
}
func TestFabricTransportForTargetSelectsWebSocketByDefault(t *testing.T) {
transport, target, err := FabricTransportForTarget(FabricTransportTarget{
Endpoint: "https://node.example",
}, nil, nil)
if err != nil {
t.Fatalf("select transport: %v", err)
}
if _, ok := transport.(*WebSocketFabricTransport); !ok {
t.Fatalf("transport = %T, want websocket", transport)
}
if target.Endpoint != "https://node.example" {
t.Fatalf("endpoint = %q", target.Endpoint)
}
}