@@ -589,12 +589,49 @@ func TestSessionsProse(t *testing.T) {
589
589
590
590
require .Len (mt , pingStartedCommands , 2 , "expected 2 pings started, got: %v" , len (pingStartedCommands ))
591
591
require .Len (mt , pingSucceededCommands , 2 , "expected 2 pings succeeded, got: %v" , len (pingSucceededCommands ))
592
- initialClusterTime , err := pingStartedCommands [0 ].LookupErr ("$clusterTime" )
592
+ initialClusterTime , err := pingSucceededCommands [0 ].LookupErr ("$clusterTime" )
593
593
require .NoError (mt , err , "$clusterTime not found in response" )
594
594
currentClusterTime , err := pingStartedCommands [1 ].LookupErr ("$clusterTime" )
595
595
require .NoError (mt , err , "$clusterTime not found in command" )
596
596
assert .Equal (mt , initialClusterTime , currentClusterTime , "expected same cluster time, got %v and %v" , initialClusterTime , currentClusterTime )
597
- mt .Fatalf ("$clusterTime: %v %v" , initialClusterTime , currentClusterTime )
597
+ })
598
+
599
+ mt .Run ("ping test" , func (mt * mtest.T ) {
600
+ serverMonitor := & event.ServerMonitor {
601
+ ServerHeartbeatStarted : func (e * event.ServerHeartbeatStartedEvent ) {
602
+ fmt .Println ("Server heartbeat started:" , e .ConnectionID )
603
+ },
604
+ ServerHeartbeatSucceeded : func (e * event.ServerHeartbeatSucceededEvent ) {
605
+ fmt .Println ("Server heartbeat succeeded:" , e .ConnectionID , e .Duration , e .Reply )
606
+ },
607
+ }
608
+
609
+ commandMonitor := & event.CommandMonitor {
610
+ Started : func (_ context.Context , cse * event.CommandStartedEvent ) {
611
+ fmt .Println ("Command started:" , cse .CommandName , cse .Command )
612
+ },
613
+ Succeeded : func (_ context.Context , cse * event.CommandSucceededEvent ) {
614
+ fmt .Println ("Command succeeded:" , cse .CommandName , cse .Reply )
615
+ },
616
+ }
617
+
618
+ opts := options .Client ().
619
+ ApplyURI (mtest .ClusterURI ()).
620
+ SetHosts ([]string {mtest .ClusterConnString ().Hosts [0 ]}).
621
+ SetDirect (true ).
622
+ SetHeartbeatInterval (500 * time .Millisecond ). // Minimum interval
623
+ SetServerMonitor (serverMonitor ).
624
+ SetMonitor (commandMonitor )
625
+
626
+ client , err := mongo .Connect (opts )
627
+ require .NoError (mt , err , "expected no error connecting to client, got: %v" , err )
628
+ defer func () {
629
+ err = client .Disconnect (context .Background ())
630
+ require .NoError (mt , err , "expected no error disconnecting client, got: %v" , err )
631
+ }()
632
+
633
+ err = client .Ping (context .Background (), readpref .Primary ())
634
+ require .NoError (mt , err , "expected no error, got: %v" , err )
598
635
})
599
636
}
600
637
0 commit comments