@@ -640,6 +640,7 @@ describe('routing driver ', function () {
640640 } ) ;
641641 } ) ;
642642 } ) ;
643+
643644 it ( 'should re-use connections' , function ( done ) {
644645 if ( ! boltkit . BoltKitSupport ) {
645646 done ( ) ;
@@ -674,10 +675,60 @@ describe('routing driver ', function () {
674675 } ) ;
675676 } ) ;
676677
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+ } )
681723 } ) ;
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+ } ) ;
682732 }
733+
683734} ) ;
0 commit comments