@@ -640,6 +640,7 @@ describe('routing driver ', function () {
640
640
} ) ;
641
641
} ) ;
642
642
} ) ;
643
+
643
644
it ( 'should re-use connections' , function ( done ) {
644
645
if ( ! boltkit . BoltKitSupport ) {
645
646
done ( ) ;
@@ -673,4 +674,53 @@ describe('routing driver ', function () {
673
674
} ) ;
674
675
} ) ;
675
676
} ) ;
677
+
678
+ it ( 'should expose server info in cluster' , function ( done ) {
679
+ if ( ! boltkit . BoltKitSupport ) {
680
+ done ( ) ;
681
+ return ;
682
+ }
683
+
684
+ // Given
685
+ var kit = new boltkit . BoltKit ( ) ;
686
+ var routingServer = kit . start ( './test/resources/boltkit/acquire_endpoints.script' , 9001 ) ;
687
+ var writeServer = kit . start ( './test/resources/boltkit/write_server_with_version.script' , 9007 ) ;
688
+ var readServer = kit . start ( './test/resources/boltkit/read_server_with_version.script' , 9005 ) ;
689
+
690
+ kit . run ( function ( ) {
691
+ var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
692
+ // When
693
+ var readSession = driver . session ( neo4j . session . READ ) ;
694
+ readSession . run ( 'MATCH (n) RETURN n.name' ) . then ( function ( readResult ) {
695
+ var writeSession = driver . session ( neo4j . session . WRITE ) ;
696
+ writeSession . run ( "CREATE (n {name:'Bob'})" ) . then ( function ( writeResult ) {
697
+ var readServerInfo = readResult . summary . server ;
698
+ var writeServerInfo = writeResult . summary . server ;
699
+
700
+ readSession . close ( ) ;
701
+ writeSession . close ( ) ;
702
+ driver . close ( ) ;
703
+
704
+ routingServer . exit ( function ( routingServerExitCode ) {
705
+ writeServer . exit ( function ( writeServerExitCode ) {
706
+ readServer . exit ( function ( readServerExitCode ) {
707
+
708
+ expect ( readServerInfo . address ) . toBe ( '127.0.0.1:9005' ) ;
709
+ expect ( readServerInfo . version ) . toBe ( 'TheReadServerV1' ) ;
710
+
711
+ expect ( writeServerInfo . address ) . toBe ( '127.0.0.1:9007' ) ;
712
+ expect ( writeServerInfo . version ) . toBe ( 'TheWriteServerV1' ) ;
713
+
714
+ expect ( routingServerExitCode ) . toEqual ( 0 ) ;
715
+ expect ( writeServerExitCode ) . toEqual ( 0 ) ;
716
+ expect ( readServerExitCode ) . toEqual ( 0 ) ;
717
+
718
+ done ( ) ;
719
+ } ) ;
720
+ } ) ;
721
+ } ) ;
722
+ } )
723
+ } ) ;
724
+ } ) ;
725
+ } ) ;
676
726
} ) ;
0 commit comments