@@ -4,6 +4,7 @@ package integTest
44
55import (
66 "context"
7+ "strings"
78 "testing"
89 "time"
910
@@ -210,6 +211,13 @@ func (suite *GlideTestSuite) TestDatabaseId_SelectCommandRouting() {
210211
211212// TestDatabaseId_ErrorHandling tests error handling for invalid database configurations
212213func (suite * GlideTestSuite ) TestDatabaseId_ErrorHandling () {
214+ // Helper function to check if error message indicates out-of-range database
215+ isOutOfRangeError := func (errMsg string ) bool {
216+ // Handle different error message formats across Valkey versions
217+ return strings .Contains (errMsg , "DB index is out of range" ) ||
218+ strings .Contains (errMsg , "server refused to switch database" )
219+ }
220+
213221 // Test standalone client with out-of-range database ID
214222 suite .T ().Run ("StandaloneOutOfRange" , func (t * testing.T ) {
215223 config := config .NewClientConfiguration ().
@@ -219,7 +227,8 @@ func (suite *GlideTestSuite) TestDatabaseId_ErrorHandling() {
219227 client , err := glide .NewClient (config )
220228 if err != nil {
221229 // If client creation fails, that's expected for out-of-range database IDs
222- assert .Contains (t , err .Error (), "DB index is out of range" )
230+ assert .True (t , isOutOfRangeError (err .Error ()),
231+ "Expected out-of-range database error, got: %s" , err .Error ())
223232 return
224233 }
225234
@@ -228,7 +237,8 @@ func (suite *GlideTestSuite) TestDatabaseId_ErrorHandling() {
228237 // If client creation succeeds, the first operation should fail
229238 _ , err = client .Set (context .Background (), "test" , "value" )
230239 assert .Error (t , err )
231- assert .Contains (t , err .Error (), "DB index is out of range" )
240+ assert .True (t , isOutOfRangeError (err .Error ()),
241+ "Expected out-of-range database error, got: %s" , err .Error ())
232242 }
233243 })
234244
@@ -246,7 +256,8 @@ func (suite *GlideTestSuite) TestDatabaseId_ErrorHandling() {
246256 client , err := glide .NewClusterClient (config )
247257 if err != nil {
248258 // If client creation fails, that's expected for out-of-range database IDs
249- assert .Contains (t , err .Error (), "DB index is out of range" )
259+ assert .True (t , isOutOfRangeError (err .Error ()),
260+ "Expected out-of-range database error, got: %s" , err .Error ())
250261 return
251262 }
252263
@@ -255,7 +266,8 @@ func (suite *GlideTestSuite) TestDatabaseId_ErrorHandling() {
255266 // If client creation succeeds, the first operation should fail
256267 _ , err = client .Set (context .Background (), "test" , "value" )
257268 assert .Error (t , err )
258- assert .Contains (t , err .Error (), "DB index is out of range" )
269+ assert .True (t , isOutOfRangeError (err .Error ()),
270+ "Expected out-of-range database error, got: %s" , err .Error ())
259271 }
260272 })
261273}
0 commit comments