MCPcopy
hub / github.com/nats-io/nats.go / TestIgnoreDiscoveredServers

Function TestIgnoreDiscoveredServers

test/cluster_test.go:900–977  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

898}
899
900func TestIgnoreDiscoveredServers(t *testing.T) {
901 s1Opts := test.DefaultTestOptions
902 s1Opts.Port = 4222
903 s1Opts.Cluster.Host = "127.0.0.1"
904 s1Opts.Cluster.Port = 6222
905 s1Opts.Routes = server.RoutesFromStr("nats://127.0.0.1:6223")
906 s1 := test.RunServer(&s1Opts)
907 defer s1.Shutdown()
908
909 s2Opts := test.DefaultTestOptions
910 s2Opts.Port = 4223
911 s2Opts.Cluster.Host = "127.0.0.1"
912 s2Opts.Cluster.Port = 6223
913 s2Opts.Routes = server.RoutesFromStr("nats://127.0.0.1:6222")
914
915 checkPoolSize := func(nc *nats.Conn, expected int) {
916 t.Helper()
917 timeout := time.Now().Add(5 * time.Second)
918 for time.Now().Before(timeout) {
919 if len(nc.Servers()) == expected {
920 return
921 }
922 time.Sleep(50 * time.Millisecond)
923 }
924 t.Fatalf("Expected %d server(s), got %d: %v", expected, len(nc.Servers()), nc.Servers())
925 }
926
927 waitForCluster := func() {
928 t.Helper()
929 timeout := time.Now().Add(5 * time.Second)
930 for time.Now().Before(timeout) {
931 if s1.NumRoutes() > 0 {
932 return
933 }
934 time.Sleep(50 * time.Millisecond)
935 }
936 t.Fatal("Cluster did not form")
937 }
938
939 t.Run("add new servers to pool", func(t *testing.T) {
940 nc, err := nats.Connect(s1.ClientURL())
941 if err != nil {
942 t.Fatalf("Error on connect: %v", err)
943 }
944 defer nc.Close()
945
946 s2 := test.RunServer(&s2Opts)
947 defer s2.Shutdown()
948
949 checkPoolSize(nc, 2)
950 if len(nc.DiscoveredServers()) != 1 {
951 t.Fatalf("Expected 1 discovered server, got %v", nc.DiscoveredServers())
952 }
953 })
954
955 t.Run("ignore new servers", func(t *testing.T) {
956 nc, err := nats.Connect(s1.ClientURL(),
957 nats.IgnoreDiscoveredServers(),

Callers

nothing calls this directly

Calls 7

ServersMethod · 0.80
FatalfMethod · 0.80
ConnectMethod · 0.80
DiscoveredServersMethod · 0.80
AddMethod · 0.65
CloseMethod · 0.45
FlushMethod · 0.45

Tested by

no test coverage detected