@@ -39,6 +39,7 @@ import (
3939 "net/url"
4040 "os"
4141 "reflect"
42+ "slices"
4243 "testing"
4344 "time"
4445
@@ -553,8 +554,14 @@ func TestDiscovery(t *testing.T) {
553554 }
554555
555556 for _ , conn := range pool .mu .live {
556- if ! reflect .DeepEqual (tt .args .Nodes [conn .ID ].Roles , conn .Roles ) {
557- t .Errorf ("Unexpected roles for node %s, want=%s, got=%s" , conn .Name , tt .args .Nodes [conn .ID ], conn .Roles )
557+ expectedRoles := make ([]string , len (tt .args .Nodes [conn .ID ].Roles ))
558+ copy (expectedRoles , tt .args .Nodes [conn .ID ].Roles )
559+ slices .Sort (expectedRoles )
560+
561+ actualRoles := conn .Roles .toSlice ()
562+
563+ if ! reflect .DeepEqual (expectedRoles , actualRoles ) {
564+ t .Errorf ("Unexpected roles for node %s, want=%s, got=%s" , conn .Name , expectedRoles , actualRoles )
558565 }
559566 }
560567
@@ -1023,11 +1030,11 @@ func TestIncludeDedicatedClusterManagersConfiguration(t *testing.T) {
10231030// TestGenericRoleBasedSelector tests the new generic role-based selector
10241031func TestGenericRoleBasedSelector (t * testing.T ) {
10251032 connections := []* Connection {
1026- {Name : "data-node" , Roles : []string {RoleData }},
1027- {Name : "ingest-node" , Roles : []string {RoleIngest }},
1028- {Name : "data-ingest-node" , Roles : []string {RoleData , RoleIngest }},
1029- {Name : "cluster-manager-node" , Roles : []string {RoleClusterManager }},
1030- {Name : "coordinating-node" , Roles : []string {}}, // No specific roles
1033+ {Name : "data-node" , Roles : newRoleSet ( []string {RoleData }) },
1034+ {Name : "ingest-node" , Roles : newRoleSet ( []string {RoleIngest }) },
1035+ {Name : "data-ingest-node" , Roles : newRoleSet ( []string {RoleData , RoleIngest }) },
1036+ {Name : "cluster-manager-node" , Roles : newRoleSet ( []string {RoleClusterManager }) },
1037+ {Name : "coordinating-node" , Roles : newRoleSet ( []string {}) }, // No specific roles
10311038 }
10321039
10331040 fallback := & mockSelector {}
@@ -1096,13 +1103,13 @@ func TestGenericRoleBasedSelector(t *testing.T) {
10961103func TestRoleBasedSelectors (t * testing.T ) {
10971104 // Create test connections with different roles
10981105 connections := []* Connection {
1099- {Name : "data-node" , Roles : []string {RoleData }},
1100- {Name : "ingest-node" , Roles : []string {RoleIngest }},
1101- {Name : "data-ingest-node" , Roles : []string {RoleData , RoleIngest }},
1102- {Name : "cluster-manager-node" , Roles : []string {RoleClusterManager }},
1103- {Name : "warm-node" , Roles : []string {RoleWarm }},
1104- {Name : "search-node" , Roles : []string {RoleSearch }},
1105- {Name : "coordinating-node" , Roles : []string {}}, // No specific roles
1106+ {Name : "data-node" , Roles : newRoleSet ( []string {RoleData }) },
1107+ {Name : "ingest-node" , Roles : newRoleSet ( []string {RoleIngest }) },
1108+ {Name : "data-ingest-node" , Roles : newRoleSet ( []string {RoleData , RoleIngest }) },
1109+ {Name : "cluster-manager-node" , Roles : newRoleSet ( []string {RoleClusterManager }) },
1110+ {Name : "warm-node" , Roles : newRoleSet ( []string {RoleWarm }) },
1111+ {Name : "search-node" , Roles : newRoleSet ( []string {RoleSearch }) },
1112+ {Name : "coordinating-node" , Roles : newRoleSet ( []string {}) }, // No specific roles
11061113 }
11071114
11081115 // Mock fallback selector that just returns the first connection
@@ -1180,9 +1187,9 @@ func TestRoleBasedSelectors(t *testing.T) {
11801187func TestSmartSelector (t * testing.T ) {
11811188 // Create test connections
11821189 connections := []* Connection {
1183- {Name : "data-node" , Roles : []string {RoleData }},
1184- {Name : "ingest-node" , Roles : []string {RoleIngest }},
1185- {Name : "data-ingest-node" , Roles : []string {RoleData , RoleIngest }},
1190+ {Name : "data-node" , Roles : newRoleSet ( []string {RoleData }) },
1191+ {Name : "ingest-node" , Roles : newRoleSet ( []string {RoleIngest }) },
1192+ {Name : "data-ingest-node" , Roles : newRoleSet ( []string {RoleData , RoleIngest }) },
11861193 }
11871194
11881195 fallback := & mockSelector {}
@@ -1235,8 +1242,8 @@ func TestSmartSelector(t *testing.T) {
12351242// TestRequestAwareConnectionPool tests the enhanced connection pool
12361243func TestRequestAwareConnectionPool (t * testing.T ) {
12371244 connections := []* Connection {
1238- {Name : "data-node" , Roles : []string {RoleData }},
1239- {Name : "ingest-node" , Roles : []string {RoleIngest }},
1245+ {Name : "data-node" , Roles : newRoleSet ( []string {RoleData }) },
1246+ {Name : "ingest-node" , Roles : newRoleSet ( []string {RoleIngest }) },
12401247 }
12411248
12421249 smartSelector := NewSmartSelector (& mockSelector {})
0 commit comments