Files
Containr/app/backend/internal/networking/service_discovery_test.go
T
2026-04-10 12:02:36 +02:00

39 lines
1.1 KiB
Go

package networking
import "testing"
func TestLoadBalancerRoundRobinSelection(t *testing.T) {
lb := NewLoadBalancer(StrategyRoundRobin)
instances := []*ServiceInstance{
{ID: "a"},
{ID: "b"},
}
first := lb.SelectInstance(instances, "")
second := lb.SelectInstance(instances, "")
third := lb.SelectInstance(instances, "")
if first == nil || second == nil || third == nil {
t.Fatalf("expected non-nil selections")
}
if first.ID != "a" || second.ID != "b" || third.ID != "a" {
t.Fatalf("unexpected round-robin order: %s, %s, %s", first.ID, second.ID, third.ID)
}
}
func TestLoadBalancerLeastConnectionsSelection(t *testing.T) {
lb := NewLoadBalancer(StrategyLeastConnections)
instances := []*ServiceInstance{
{ID: "busy", Metadata: map[string]string{"active_connections": "42"}},
{ID: "idle", Metadata: map[string]string{"active_connections": "1"}},
}
selected := lb.SelectInstance(instances, "")
if selected == nil {
t.Fatalf("expected non-nil instance")
}
if selected.ID != "idle" {
t.Fatalf("expected idle instance, got %s", selected.ID)
}
}