@@ -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 ( ) ;
@@ -674,10 +675,60 @@ describe('routing driver ', function () {
674
675
} ) ;
675
676
} ) ;
676
677
677
- function newDriver ( url ) {
678
- // BoltKit currently does not support encryption, create driver with encryption turned off
679
- return neo4j . driver ( url , neo4j . auth . basic ( "neo4j" , "neo4j" ) , {
680
- encrypted : "ENCRYPTION_OFF"
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 = newDriver ( "bolt+routing://127.0.0.1:9001" ) ;
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
+ } )
681
723
} ) ;
724
+ } ) ;
725
+ } ) ;
726
+
727
+ function newDriver ( url ) {
728
+ // BoltKit currently does not support encryption, create driver with encryption turned off
729
+ return neo4j . driver ( url , neo4j . auth . basic ( "neo4j" , "neo4j" ) , {
730
+ encrypted : "ENCRYPTION_OFF"
731
+ } ) ;
682
732
}
733
+
683
734
} ) ;
0 commit comments