Files
rdp-proxy/agents/rap-node-agent/internal/mesh/fabric_transport_test.go
T

47 lines
1.4 KiB
Go

package mesh
import (
"strings"
"testing"
)
func TestFabricTransportRejectsWebSocketTransport(t *testing.T) {
for _, target := range []FabricTransportTarget{
{Transport: "wss", Endpoint: "wss://node-a.example/fabric/session"},
{Transport: "relay", Endpoint: "quic://node-r.example:19443"},
{Transport: "outbound_reverse", Endpoint: "quic://node-b.example:19443"},
} {
_, _, err := FabricTransportForTarget(target, nil)
if err == nil || !strings.Contains(err.Error(), "quic is required") {
t.Fatalf("target = %+v err = %v, want quic-only rejection", target, err)
}
}
}
func TestFabricTransportForTargetSelectsQUICByScheme(t *testing.T) {
transport, target, err := FabricTransportForTarget(FabricTransportTarget{
Endpoint: "quic://127.0.0.1:4433",
}, 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 TestFabricTransportForTargetRejectsNonQUICByDefault(t *testing.T) {
_, target, err := FabricTransportForTarget(FabricTransportTarget{
Endpoint: "https://node.example",
}, nil)
if err == nil {
t.Fatal("non-QUIC target unexpectedly selected a transport")
}
if target.Endpoint != "https://node.example" {
t.Fatalf("endpoint = %q", target.Endpoint)
}
}