@@ -114,6 +114,8 @@ func createClientOptions(t testing.TB, opts bson.Raw) *options.ClientOptions {
114114 case "socketTimeoutMS" :
115115 st := convertValueToMilliseconds (t , opt )
116116 clientOpts .SetSocketTimeout (st )
117+ case "timeoutMS" :
118+ clientOpts .SetTimeout (time .Duration (opt .Int32 ()) * time .Millisecond )
117119 case "minPoolSize" :
118120 clientOpts .SetMinPoolSize (uint64 (opt .AsInt64 ()))
119121 case "maxPoolSize" :
@@ -470,8 +472,9 @@ func errorFromResult(t testing.TB, result interface{}) *operationError {
470472 if err != nil {
471473 return nil
472474 }
473- if expected .ErrorCodeName == nil && expected .ErrorContains == nil && len (expected .ErrorLabelsOmit ) == 0 &&
474- len (expected .ErrorLabelsContain ) == 0 {
475+ if expected .ErrorCodeName == nil && expected .ErrorContains == nil &&
476+ len (expected .ErrorLabelsOmit ) == 0 && len (expected .ErrorLabelsContain ) == 0 &&
477+ expected .IsTimeoutError == nil {
475478 return nil
476479 }
477480
@@ -563,6 +566,13 @@ func verifyError(expected *operationError, actual error) error {
563566 return fmt .Errorf ("expected error %w to not contain label %q" , actual , label )
564567 }
565568 }
569+ if expected .IsTimeoutError != nil {
570+ isTimeoutError := mongo .IsTimeout (actual )
571+ if * expected .IsTimeoutError != isTimeoutError {
572+ return fmt .Errorf ("expected error %w to be a timeout error: %v, is timeout error: %v" ,
573+ actual , * expected .IsTimeoutError , isTimeoutError )
574+ }
575+ }
566576 return nil
567577}
568578
0 commit comments